spec-cat 0.1.33 → 0.1.35

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 (78) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{D3aEg5Ay.js → 2XXwAFmK.js} +19 -19
  3. package/.output/public/_nuxt/{BiP1e8Z4.js → BKZAxZcC.js} +1 -1
  4. package/.output/public/_nuxt/{ClgyE2Qa.js → BLiXDnUt.js} +1 -1
  5. package/.output/public/_nuxt/Bai8qLnn.js +1 -0
  6. package/.output/public/_nuxt/{B59S8ud-.js → BouwExBZ.js} +1 -1
  7. package/.output/public/_nuxt/{Bu8HcKy6.js → BzX5dxvd.js} +1 -1
  8. package/.output/public/_nuxt/{8DL6DDI4.js → CAqXi7E0.js} +1 -1
  9. package/.output/public/_nuxt/{6UKw2IeC.js → CE6PQN7h.js} +1 -1
  10. package/.output/public/_nuxt/CFoLn9L9.js +1 -0
  11. package/.output/public/_nuxt/{WKoWzouJ.js → CxPW3eha.js} +2 -2
  12. package/.output/public/_nuxt/{BU1QHerL.js → D1PodrLU.js} +1 -1
  13. package/.output/public/_nuxt/{neNK3wGN.js → DTJSvQUl.js} +1 -1
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/e3e6b956-26c4-4882-9c99-a78efcb98231.json +1 -0
  16. package/.output/public/_nuxt/dbPDc6Lb.js +85 -0
  17. package/.output/public/_nuxt/default.DKSPicGu.css +1 -0
  18. package/.output/public/_nuxt/entry.DWv01Nib.css +1 -0
  19. package/.output/public/_nuxt/{useTheme.CYTdpguX.css → useTheme.Cny4Z64J.css} +1 -1
  20. package/.output/server/chunks/_/git.mjs +111 -163
  21. package/.output/server/chunks/_/git.mjs.map +1 -1
  22. package/.output/server/chunks/_/gitBranchOperations.mjs +61 -0
  23. package/.output/server/chunks/_/gitBranchOperations.mjs.map +1 -0
  24. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  25. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  26. package/.output/server/chunks/nitro/nitro.mjs +626 -626
  27. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +2 -1
  28. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
  29. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +2 -1
  30. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
  31. package/.output/server/chunks/routes/api/git/clean.post.mjs +2 -1
  32. package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
  33. package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +1 -1
  34. package/.output/server/chunks/routes/api/git/diff.get.mjs +1 -1
  35. package/.output/server/chunks/routes/api/git/fetch.post.mjs +2 -1
  36. package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
  37. package/.output/server/chunks/routes/api/git/file-diff.get.mjs +1 -1
  38. package/.output/server/chunks/routes/api/git/graph.get.mjs +1 -1
  39. package/.output/server/chunks/routes/api/git/log.get.mjs +1 -1
  40. package/.output/server/chunks/routes/api/git/merge-base.get.mjs +1 -1
  41. package/.output/server/chunks/routes/api/git/merge.post.mjs +2 -1
  42. package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
  43. package/.output/server/chunks/routes/api/git/pull.post.mjs +2 -1
  44. package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
  45. package/.output/server/chunks/routes/api/git/push.post.mjs +2 -1
  46. package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/git/rebase.post.mjs +2 -1
  48. package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
  49. package/.output/server/chunks/routes/api/git/remote.delete.mjs +1 -1
  50. package/.output/server/chunks/routes/api/git/remote.post.mjs +1 -1
  51. package/.output/server/chunks/routes/api/git/remote.put.mjs +1 -1
  52. package/.output/server/chunks/routes/api/git/remotes.get.mjs +1 -1
  53. package/.output/server/chunks/routes/api/git/reset.post.mjs +2 -1
  54. package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
  55. package/.output/server/chunks/routes/api/git/revert.post.mjs +2 -1
  56. package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
  57. package/.output/server/chunks/routes/api/git/show.get.mjs +1 -1
  58. package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +1 -1
  59. package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +1 -1
  60. package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +1 -1
  61. package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +1 -1
  62. package/.output/server/chunks/routes/api/git/stash.get.mjs +1 -1
  63. package/.output/server/chunks/routes/api/git/stash.post.mjs +1 -1
  64. package/.output/server/chunks/routes/api/git/state.get.mjs +1 -1
  65. package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +1 -1
  66. package/.output/server/chunks/routes/api/git/tag-push.post.mjs +1 -1
  67. package/.output/server/chunks/routes/api/git/tag.delete.mjs +1 -1
  68. package/.output/server/chunks/routes/api/git/tag.post.mjs +1 -1
  69. package/.output/server/chunks/routes/api/repository/status.get.mjs +1 -1
  70. package/.output/server/package.json +1 -1
  71. package/README.md +8 -0
  72. package/package.json +1 -1
  73. package/.output/public/_nuxt/D2fkBJdf.js +0 -1
  74. package/.output/public/_nuxt/DjSReRpH.js +0 -1
  75. package/.output/public/_nuxt/builds/meta/f0d946a1-dd14-42e4-956f-98e97d26fdb3.json +0 -1
  76. package/.output/public/_nuxt/default.D9amvrGI.css +0 -1
  77. package/.output/public/_nuxt/entry.D8StCG4P.css +0 -1
  78. package/.output/public/_nuxt/jMiD93EZ.js +0 -85
@@ -1,85 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DjSReRpH.js","./WKoWzouJ.js","./entry.D8StCG4P.css","./B59S8ud-.js"])))=>i.map(i=>d[i]);
2
- import{y as v,z as y,A as d,d as Ve,C as te,G as m,Q as Je,S as Lt,R as nt,I as $e,E as Xe,B as _,K as H,g as T,J as Ye,U as Os,k as ee,V as nr,L as Ze,H as be,o as Ot,W as Ct,X as Zp,N as We,Y as Ut,T as Pr,Z as Fs,O as xn,D as ht,P as kr,_ as Ep,$ as wu,a0 as Re,a1 as vs,a2 as Or,a3 as Cs,a4 as vc,a5 as m1,c as g1,a6 as Bh,a7 as Dp,a8 as O1,q as v1,a9 as b1,x as x1}from"./WKoWzouJ.js";import{r as Qt,c as yn,b as ll,a as ys,u as Su}from"./6UKw2IeC.js";import{g as Oo,m as y1,p as k1,h as Zh,i as w1,j as Eh,k as S1,l as $1,n as C1,o as Q1,q as Lp,s as Dh,C as P1,_ as T1,t as $u,u as M1,r as A1,a as _1}from"./D3aEg5Ay.js";import{_ as ci}from"./DlAUqK2U.js";import{S as Ca,i as R1,b as B1,P as Z1,W as Lh,M as Xh,c as Ih,d as Vh,g as zh,e as E1,D as Xp,f as Ip,h as D1,a as vo,u as bo,j as jt,k as Es,l as Zo}from"./DjSReRpH.js";import{u as bc,_ as L1}from"./BU1QHerL.js";function X1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"})])}function I1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0-3-3m3 3 3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"})])}function V1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15M9 12l3 3m0 0 3-3m-3 3V2.25"})])}function z1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"})])}function N1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"})])}function Vp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 0 0-3.7-3.7 48.678 48.678 0 0 0-7.324 0 4.006 4.006 0 0 0-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 0 0 3.7 3.7 48.656 48.656 0 0 0 7.324 0 4.006 4.006 0 0 0 3.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3-3 3"})])}function zp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5"})])}function Np(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"})])}function Wp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"})])}function qp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"})])}function jp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})])}function W1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"})])}function Yp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"})])}function q1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082"})])}function j1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"})])}function Y1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155"})])}function F1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z"})])}function Cu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 12.75 6 6 9-13.5"})])}function U1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})])}function Qu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"})])}function G1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"})])}function Pu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z"})])}function Us(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0 0 15 2.25h-1.5a2.251 2.251 0 0 0-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9Z"})])}function Fp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9.75v6.75m0 0-3-3m3 3 3-3m-8.25 6a4.5 4.5 0 0 1-1.41-8.775 5.25 5.25 0 0 1 10.233-2.33 3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5H6.75Z"})])}function Up(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function H1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"})])}function K1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"})])}function J1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"})])}function ev(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Zm3.75 11.625a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"})])}function Gs(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function In(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"})])}function tv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88"})])}function rv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function nv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 0 0-1.883 2.542l.857 6a2.25 2.25 0 0 0 2.227 1.932H19.05a2.25 2.25 0 0 0 2.227-1.932l.857-6a2.25 2.25 0 0 0-1.883-2.542m-16.5 0V6A2.25 2.25 0 0 1 6 3.75h3.879a1.5 1.5 0 0 1 1.06.44l2.122 2.12a1.5 1.5 0 0 0 1.06.44H18A2.25 2.25 0 0 1 20.25 9v.776"})])}function sv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"})])}function iv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5"})])}function ov(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"})])}function av(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 18v-5.25m0 0a6.01 6.01 0 0 0 1.5-.189m-1.5.189a6.01 6.01 0 0 1-1.5-.189m3.75 7.478a12.06 12.06 0 0 1-4.5 0m3.75 2.383a14.406 14.406 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"})])}function Gp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})])}function bs(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"})])}function lv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 12h14"})])}function cv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"})])}function Hp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"})])}function uv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"})])}function Nh(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 0 1-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 0 0-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 0 1-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 0 0 .657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 0 0 5.427-.63 48.05 48.05 0 0 0 .582-4.717.532.532 0 0 0-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 0 0 .658-.663 48.422 48.422 0 0 0-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 0 1-.61-.58v0Z"})])}function Tu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"})])}function hv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z"})])}function Kp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"})])}function Mu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z"})])}function Qa(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})])}function dv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 0 1 9 14.437V9.564Z"})])}function Au(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 6h.008v.008H6V6Z"})])}function fv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z"})])}const pv={class:"flex items-center gap-1.5 px-2 py-1.5 bg-retro-panel border-b border-retro-border"},mv={class:"relative flex-1 min-w-0"},gv={key:0,class:"text-[11px] text-retro-muted flex-shrink-0 min-w-[60px] text-center"},Ov=["disabled"],vv=["disabled"],bv=Ve({__name:"GitFindWidget",props:{resultCount:{},currentIndex:{}},emits:["search","next","prev","close"],setup(r,{expose:e,emit:t}){const n=t,s=T(""),i=T(null);let o=null;function a(){o&&clearTimeout(o),o=setTimeout(()=>{n("search",s.value)},200)}function l(u){u.key==="Escape"?(u.preventDefault(),n("close")):u.key==="Enter"&&(u.preventDefault(),u.shiftKey?n("prev"):n("next"))}function c(){i.value?.focus(),i.value?.select()}return e({focus:c}),(u,h)=>(v(),y("div",pv,[te(m(bs),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("div",mv,[Je(d("input",{ref_key:"inputRef",ref:i,"onUpdate:modelValue":h[0]||(h[0]=f=>nt(s)?s.value=f:null),type:"text",placeholder:"Find in commits...","aria-label":"Search commits",class:"w-full px-2 py-1 text-sm bg-retro-dark border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onInput:a,onKeydown:l},null,544),[[Lt,m(s)]])]),m(s)?(v(),y("span",gv,[r.resultCount>0?(v(),y($e,{key:0},[Xe(_(r.currentIndex+1)+" of "+_(r.resultCount),1)],64)):(v(),y($e,{key:1},[Xe(" No results ")],64))])):H("",!0),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Previous result",title:"Previous (Shift+Enter)",onClick:h[1]||(h[1]=f=>n("prev"))},[te(m(G1),{class:"w-4 h-4"})],8,Ov),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Next result",title:"Next (Enter)",onClick:h[2]||(h[2]=f=>n("next"))},[te(m(U1),{class:"w-4 h-4"})],8,vv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors","aria-label":"Close find widget",title:"Close (Escape)",onClick:h[3]||(h[3]=f=>n("close"))},[te(m(Qt),{class:"w-4 h-4"})])]))}}),xv={class:"flex flex-col bg-retro-dark border border-retro-border rounded shadow-lg max-w-md w-full"},yv={class:"flex items-center justify-between px-3 py-2 border-b border-retro-border"},kv={class:"flex-1 overflow-auto max-h-[300px]"},wv={class:"font-semibold text-retro-cyan flex-shrink-0 min-w-[60px]"},Sv=["onKeyup"],$v=["onClick"],Cv={class:"text-retro-muted truncate flex-1 font-mono"},Qv=["onClick"],Pv=["onClick"],Tv={key:0,class:"px-3 py-4 text-center text-retro-muted text-xs"},Mv={key:0,class:"px-3 py-2 border-t border-retro-border space-y-2"},Av={class:"flex gap-2 justify-end"},_v=["disabled"],Rv={key:1,class:"px-3 py-2 border-t border-retro-border"},Bv=Ve({__name:"GitRemoteManager",props:{remotes:{},loading:{type:Boolean}},emits:["add","edit","delete","close"],setup(r,{emit:e}){const t=e,n=T(!1),s=T(""),i=T(""),o=T(null),a=T("");function l(){n.value=!0,s.value="",i.value=""}function c(){!s.value.trim()||!i.value.trim()||(t("add",{name:s.value.trim(),url:i.value.trim()}),n.value=!1)}function u(p){o.value=p.name,a.value=p.fetchUrl}function h(p){a.value.trim()&&(t("edit",{name:p,newUrl:a.value.trim()}),o.value=null)}function f(){o.value=null}return(p,g)=>(v(),y("div",xv,[d("div",yv,[g[5]||(g[5]=d("h3",{class:"text-sm font-semibold text-retro-text"},"Remote Repositories",-1)),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",onClick:g[0]||(g[0]=O=>t("close"))},[te(m(Qt),{class:"w-4 h-4"})])]),d("div",kv,[(v(!0),y($e,null,Ye(r.remotes,O=>(v(),y("div",{key:O.name,class:"flex items-center gap-2 px-3 py-2 border-b border-retro-border/50 text-xs"},[d("span",wv,_(O.name),1),m(o)===O.name?(v(),y($e,{key:0},[Je(d("input",{"onUpdate:modelValue":g[1]||(g[1]=x=>nt(a)?a.value=x:null),type:"text",class:"flex-1 px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan",onKeyup:[Os(x=>h(O.name),["enter"]),Os(f,["escape"])]},null,40,Sv),[[Lt,m(a)]]),d("button",{class:"p-0.5 text-retro-green hover:text-retro-green/80",onClick:x=>h(O.name)},[te(m(Cu),{class:"w-3.5 h-3.5"})],8,$v),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",onClick:f},[te(m(Qt),{class:"w-3.5 h-3.5"})])],64)):(v(),y($e,{key:1},[d("span",Cv,_(O.fetchUrl),1),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",title:"Edit",onClick:x=>u(O)},[te(m(Hp),{class:"w-3.5 h-3.5"})],8,Qv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-red",title:"Delete",onClick:x=>t("delete",O.name)},[te(m(yn),{class:"w-3.5 h-3.5"})],8,Pv)],64))]))),128)),r.remotes.length===0?(v(),y("div",Tv," No remotes configured ")):H("",!0)]),m(n)?(v(),y("div",Mv,[Je(d("input",{"onUpdate:modelValue":g[2]||(g[2]=O=>nt(s)?s.value=O:null),type:"text",placeholder:"Remote name (e.g., origin)",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Lt,m(s)]]),Je(d("input",{"onUpdate:modelValue":g[3]||(g[3]=O=>nt(i)?i.value=O:null),type:"text",placeholder:"Remote URL",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onKeyup:Os(c,["enter"])},null,544),[[Lt,m(i)]]),d("div",Av,[d("button",{class:"px-2 py-1 text-xs text-retro-muted hover:text-retro-text transition-colors",onClick:g[4]||(g[4]=O=>n.value=!1)}," Cancel "),d("button",{class:"px-2 py-1 text-xs bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40 rounded hover:bg-retro-cyan/30 transition-colors",disabled:!m(s).trim()||!m(i).trim(),onClick:c}," Add Remote ",8,_v)])])):H("",!0),m(n)?H("",!0):(v(),y("div",Rv,[d("button",{class:"flex items-center gap-1 text-xs text-retro-cyan hover:text-retro-cyan/80 transition-colors",onClick:l},[te(m(ll),{class:"w-3.5 h-3.5"}),g[6]||(g[6]=Xe(" Add Remote ",-1))])]))]))}}),cl={NODE_RADIUS:4,ROW_HEIGHT:32,COLUMN_WIDTH:20,PADDING:10,VISIBLE_BUFFER:10},Eo=["#3B82F6","#EF4444","#10B981","#F59E0B","#8B5CF6","#EC4899","#14B8A6","#F97316","#06B6D4","#84CC16","#F43F5E","#A855F7"],Hs={A:{label:"Added",colorClass:"text-retro-green"},M:{label:"Modified",colorClass:"text-retro-yellow"},D:{label:"Deleted",colorClass:"text-retro-red"},R:{label:"Renamed",colorClass:"text-retro-blue"},C:{label:"Copied",colorClass:"text-retro-purple"},U:{label:"Unmerged",colorClass:"text-retro-cyan"}},Zv=["width","height"],Ev=["d","stroke","stroke-dasharray"],Dv={key:0},Lv=["cx","r"],Xv=["cx","r","fill"],Iv=["cx","r","stroke"],Vv=["cx","r","fill"],zv=["cx","r","stroke"],Nv=["cx","r","fill"],Wv=["cx","r"],qv=["cx","r","fill"],Jp=Ve({__name:"GitGraphSvg",props:{rowData:{},maxLane:{default:4},highlightBranches:{},tooltipText:{}},setup(r){const e=r,{COLUMN_WIDTH:t,ROW_HEIGHT:n,NODE_RADIUS:s,PADDING:i}=cl,o=ee(()=>i*2+(e.maxLane+1)*t),a=n,l=n/2;function c(f){return i+f*t}function u(f){const p=c(f.fromLane),g=c(f.toLane);if(f.type==="vertical")return`M ${p} 0 L ${g} ${a}`;if(f.type==="vertical-top")return`M ${p} 0 L ${p} ${l}`;if(f.type==="vertical-bottom")return`M ${p} ${l} L ${p} ${a}`;if(f.style==="rounded")return`M ${p} ${l} C ${p} ${a}, ${g} ${a}, ${g} ${a}`;{const O=a*.75;return`M ${p} ${l} L ${p} ${O} L ${g} ${a}`}}const h=ee(()=>e.rowData?c(e.rowData.lane):i);return(f,p)=>(v(),y("svg",{width:m(o),height:m(a),class:"block flex-shrink-0","aria-hidden":"true"},[r.rowData?(v(),y($e,{key:0},[(v(!0),y($e,null,Ye(r.rowData.connections,(g,O)=>(v(),y("path",{key:O,d:u(g),stroke:g.color,"stroke-width":"2",fill:"none","stroke-dasharray":g.type.startsWith("merge")?"4 3":"none"},null,8,Ev))),128)),d("g",null,[r.tooltipText?(v(),y("title",Dv,_(r.tooltipText),1)):H("",!0),r.rowData.nodeType==="head"?(v(),y($e,{key:1},[d("circle",{cx:m(h),cy:l,r:m(s)+2,fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-cyan"},null,8,Lv),d("circle",{cx:m(h),cy:l,r:m(s),fill:r.rowData.color},null,8,Xv)],64)):r.rowData.nodeType==="merge"?(v(),y($e,{key:2},[d("circle",{cx:m(h),cy:l,r:m(s)+1,fill:"none",stroke:r.rowData.color,"stroke-width":"1.5"},null,8,Iv),d("circle",{cx:m(h),cy:l,r:m(s)-1,fill:r.rowData.color},null,8,Vv)],64)):r.rowData.nodeType==="stash"?(v(),y($e,{key:3},[d("circle",{cx:m(h),cy:l,r:m(s),fill:"none",stroke:r.rowData.color,"stroke-width":"2"},null,8,zv),d("circle",{cx:m(h),cy:l,r:m(s)-2,fill:r.rowData.color},null,8,Nv)],64)):r.rowData.nodeType==="uncommitted"?(v(),y("circle",{key:4,cx:m(h),cy:l,r:m(s),fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-yellow","stroke-dasharray":"3 2"},null,8,Wv)):(v(),y("circle",{key:5,cx:m(h),cy:l,r:m(s),fill:r.rowData.color},null,8,qv))])],64)):H("",!0)],8,Zv))}}),jv=["aria-selected","aria-label"],Yv={key:1,class:"flex gap-1 flex-shrink-0"},Fv=["title","onContextmenu"],Uv={key:2,class:"flex gap-1 flex-shrink-0"},Gv=["onContextmenu"],Hv={class:"text-retro-text text-xs truncate flex-1"},Kv={key:5,class:"flex-shrink-0 text-retro-muted text-[10px] hidden sm:inline"},Jv={key:6,class:"flex-shrink-0 text-retro-muted text-[10px]"},Wh=72,eb=Ve({__name:"GitCommitRow",props:{commit:{},index:{},isSelected:{type:Boolean},isHighlighted:{type:Boolean},isBranchHighlighted:{type:Boolean},isFeatureHighlighted:{type:Boolean},isPreviewHighlighted:{type:Boolean},isMuted:{type:Boolean},currentBranchName:{},localBranchNames:{},graphRowData:{},maxLane:{},columnVisibility:{}},emits:["click","keydown","branchContextMenu","commitContextMenu","tagContextMenu"],setup(r,{emit:e}){const t=r,n=e,s=ee(()=>{const f=t.commit.branches;if(f.length===0)return[];const p=t.localBranchNames,g=[],O=[];for(const P of f)p.has(P)?g.push(P):O.push(P);const x=new Set(g),b=new Map,k=[];for(const P of O){const R=P.indexOf("/");if(R>0){const V=P.substring(R+1),L=P.substring(0,R);x.has(V)?(b.has(V)||b.set(V,[]),b.get(V).push(L)):k.push(P)}else k.push(P)}const $=[];for(const P of g){const R=b.get(P)||[];R.length>0?$.push({displayName:`${P}/${R.join(",")}`,originalBranches:[P,...R.map(V=>`${V}/${P}`)],isLocal:!0}):$.push({displayName:P,originalBranches:[P],isLocal:!0})}for(const P of k)$.push({displayName:P,originalBranches:[P],isLocal:!1});return $});function i(f,p){f.preventDefault(),f.stopPropagation();const g=p.originalBranches[0];n("branchContextMenu",{branch:g,x:f.clientX,y:f.clientY,isCurrentBranch:p.isLocal&&p.originalBranches.includes(t.currentBranchName??""),isLocal:p.isLocal})}function o(f,p){f.preventDefault(),f.stopPropagation(),n("tagContextMenu",{tag:p,x:f.clientX,y:f.clientY})}function a(f){f.preventDefault(),f.stopPropagation(),n("commitContextMenu",{x:f.clientX,y:f.clientY})}const{ROW_HEIGHT:l}=cl,c=ee(()=>{const f=[t.commit.shortHash];return t.commit.branches.length>0&&f.push(t.commit.branches.join(", ")),t.commit.tags.length>0&&f.push(t.commit.tags.map(p=>`tag: ${p}`).join(", ")),f.join(" — ")});function u(f){const g=Date.now()/1e3-f;return g<60?"just now":g<3600?`${Math.floor(g/60)}m ago`:g<86400?`${Math.floor(g/3600)}h ago`:g<604800?`${Math.floor(g/86400)}d ago`:g<2592e3?`${Math.floor(g/604800)}w ago`:new Date(f*1e3).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function h(f){const p=f.split(`
3
- `)[0];return p.length>Wh?p.substring(0,Wh-3)+"...":p}return(f,p)=>{const g=Jp;return v(),y("div",{class:Ze(["flex items-center cursor-pointer group focus:outline-none focus:ring-1 focus:ring-retro-cyan/50 focus:ring-inset",{"opacity-40":r.isMuted,"bg-retro-magenta/10":r.isPreviewHighlighted,"bg-retro-yellow/20":r.isFeatureHighlighted&&!r.isPreviewHighlighted}]),style:nr({height:`${m(l)}px`}),role:"row",tabindex:"0","aria-selected":r.isSelected,"aria-label":`Commit ${r.commit.shortHash} by ${r.commit.author}: ${r.commit.message.split(`
4
- `)[0]}`,onClick:p[0]||(p[0]=O=>n("click",O)),onKeydown:p[1]||(p[1]=O=>n("keydown",O)),onContextmenu:a},[te(g,{rowData:r.graphRowData,maxLane:r.maxLane,tooltipText:m(c)},null,8,["rowData","maxLane","tooltipText"]),d("div",{class:Ze(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-magenta/10 border-l-2 border-retro-magenta/40":r.isPreviewHighlighted,"bg-retro-yellow/30 border-l-2 border-retro-yellow":r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/15":r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-yellow/10":r.isHighlighted&&!r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/5":r.isBranchHighlighted&&!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"group-hover:bg-retro-panel/50":!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted&&!r.isBranchHighlighted}]),style:nr({height:`${m(l)-4}px`})},[!r.columnVisibility||r.columnVisibility.commit!==!1?(v(),y("span",{key:0,class:Ze(["flex-shrink-0 font-mono text-[11px]",r.commit.isHead?"text-retro-cyan font-semibold":"text-retro-muted"])},_(r.commit.shortHash),3)):H("",!0),m(s).length>0?(v(),y("div",Yv,[(v(!0),y($e,null,Ye(m(s),O=>(v(),y("span",{key:O.displayName,class:Ze(["px-1.5 py-0.5 text-[10px] rounded font-semibold leading-none cursor-context-menu hover:ring-1 hover:ring-retro-cyan/50",r.commit.isHead&&O.isLocal?"bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40":r.isPreviewHighlighted?"bg-retro-magenta/10 text-retro-magenta border border-retro-magenta/40":r.isFeatureHighlighted?"bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/30":r.isBranchHighlighted?"bg-retro-cyan/15 text-retro-cyan/80 border border-retro-cyan/30":O.isLocal?"bg-retro-green/15 text-retro-green border border-retro-green/30":"bg-retro-orange/15 text-retro-orange border border-retro-orange/30"]),title:O.originalBranches.join(", "),onContextmenu:x=>i(x,O)},_(O.displayName),43,Fv))),128))])):H("",!0),r.commit.tags.length>0?(v(),y("div",Uv,[(v(!0),y($e,null,Ye(r.commit.tags,O=>(v(),y("span",{key:O,class:"px-1 py-0.5 text-[10px] rounded-sm bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/25 flex items-center gap-0.5 leading-none cursor-context-menu hover:ring-1 hover:ring-retro-yellow/50",onContextmenu:x=>o(x,O)},[te(m(Au),{class:"w-2.5 h-2.5"}),Xe(" "+_(O),1)],40,Gv))),128))])):H("",!0),d("span",Hv,_(h(r.commit.message)),1),r.commit.signatureStatus==="good"?(v(),be(m(Kp),{key:3,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-green",title:"Verified signature"})):r.commit.signatureStatus==="bad"?(v(),be(m(Mu),{key:4,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-red",title:"Bad signature"})):H("",!0),!r.columnVisibility||r.columnVisibility.author!==!1?(v(),y("span",Kv,_(r.commit.author),1)):H("",!0),!r.columnVisibility||r.columnVisibility.date!==!1?(v(),y("span",Jv,_(u(r.commit.timestamp)),1)):H("",!0)],6)],46,jv)}}});function tb(){const{COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}=cl;function s(l){let c=0;for(let u=0;u<l.length;u++){const h=l.charCodeAt(u);c=(c<<5)-c+h,c=c&c}return Math.abs(c)}function i(l){const c=s(l)%Eo.length;return Eo[c]}function o(l,c="rounded"){const u=new Map;if(l.length===0)return u;const h=new Set,f=new Map;for(const $ of l)f.set($.hash,$);const p=l.find($=>$.isHead)||l[0];if(p){let $=p;for(;$;){h.add($.hash);const P=$.parents?.[0];$=P?f.get(P):void 0}}const g=new Map,O=new Map,x=new Map,b=new Map,k=new Map;for(let $=0;$<l.length;$++){const P=l[$];k.set(P.hash,$);const R=h.has(P.hash);let V,L;if(b.has(P.hash)){const X=b.get(P.hash);V=X.lane,L=X.color,b.delete(P.hash)}else if(R)V=0,L=Eo[0];else{for(V=1;x.has(V);)V++;L=i(P.hash.substring(0,7))}g.set(P.hash,V),O.set(P.hash,L),x.set(V,P.hash);const ae=P.isMerge||P.parents&&P.parents.length>1;let ce="regular";P.isHead?ce="head":ae&&(ce="merge"),u.set(P.hash,{commitHash:P.hash,lane:V,color:L,nodeType:ce,isMainline:h.has(P.hash),connections:[]});const Oe=P.parents||[];for(let X=0;X<Oe.length;X++){const E=Oe[X];if(g.has(E)||b.has(E))continue;const U=h.has(E);let j,W;if(X===0)j=V,W=L;else if(U)j=0,W=Eo[0];else{for(j=1;x.has(j)||j===V;)j++;W=i(E.substring(0,7))}b.set(E,{lane:j,color:W,childHash:P.hash})}const q=Oe[0];if(!q)x.delete(V);else{const X=g.get(q),E=b.get(q),U=X??E?.lane;U!==void 0&&U!==V&&x.delete(V)}}for(let $=0;$<l.length;$++){const P=l[$],R=u.get(P.hash);if(!R)continue;const V=P.parents||[];for(let L=0;L<V.length;L++){const ae=V[L],ce=g.get(ae),Oe=k.get(ae);if(ce===void 0)continue;const q=R.lane,X=ce,E=L===0?R.color:O.get(ae)||i(ae.substring(0,7));if(q===X?R.connections.push({type:"vertical-bottom",fromLane:q,toLane:X,color:E,style:c}):L>0?R.connections.push({type:q<X?"merge-out":"merge-in",fromLane:q,toLane:X,color:E,style:c}):R.connections.push({type:q<X?"branch-out":"branch-in",fromLane:q,toLane:X,color:E,style:c}),Oe!==void 0&&Oe>$+1)for(let U=$+1;U<Oe;U++){const j=l[U],W=u.get(j.hash);W&&W.connections.push({type:"vertical",fromLane:X,toLane:X,color:E,style:c})}if(Oe!==void 0){const U=u.get(ae);U&&U.connections.push({type:"vertical-top",fromLane:X,toLane:X,color:E,style:c})}}}return u}function a(l){let c=0;for(const u of l.values()){u.lane>c&&(c=u.lane);for(const h of u.connections)h.fromLane>c&&(c=h.fromLane),h.toLane>c&&(c=h.toLane)}return c}return{computeGraphRows:o,computeMaxLane:a,getBranchColor:i,COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}}const rb=["aria-selected"],nb={class:"text-retro-yellow text-xs font-medium"},sb={key:1,class:"flex items-center justify-center gap-2 p-2 text-retro-muted text-sm"},ib={key:2,class:"p-2 text-center text-retro-muted/50 text-xs"},ob=Ve({__name:"GitCommitList",props:{commits:{},stashes:{},selectedCommit:{},hasMore:{type:Boolean},loading:{type:Boolean},loadingMore:{type:Boolean},searchQuery:{},uncommittedChangesCount:{},isUncommittedChangesSelected:{type:Boolean},highlightBranches:{},featureHighlightBranches:{},featureMergeBases:{},previewHighlightBranches:{},previewMergeBases:{},currentBranchName:{},localBranchNames:{},graphStyle:{default:"rounded"},muteNonAncestral:{type:Boolean},columnVisibility:{}},emits:["select","compareSelect","loadMore","branchContextMenu","commitContextMenu","tagContextMenu","stashContextMenu","selectUncommittedChanges","scrollStart","scrollEnd"],setup(r,{expose:e,emit:t}){const n=r,s=t;function i(){s("selectUncommittedChanges")}function o(S){(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),s("selectUncommittedChanges"))}const a=ee(()=>n.searchQuery?.toLowerCase()??""),l=ee(()=>new Set(n.highlightBranches??[])),c=ee(()=>l.value.size>0),u=ee(()=>{const S=a.value;if(!S)return new Set;const w=new Set;for(const M of n.commits)(M.message.toLowerCase().includes(S)||M.author.toLowerCase().includes(S)||M.shortHash.toLowerCase().includes(S)||M.hash.toLowerCase().includes(S)||M.branches.some(B=>B.toLowerCase().includes(S))||M.tags.some(B=>B.toLowerCase().includes(S)))&&w.add(M.hash);return w}),h=ee(()=>{if(!c.value)return new Set;const S=new Set;for(const w of n.commits)w.branches.some(M=>l.value.has(M))&&S.add(w.hash);return S}),f=ee(()=>{if(!n.featureHighlightBranches||n.featureHighlightBranches.length===0)return new Set;const S=n.featureMergeBases??{},w=new Map;for(const B of n.commits)w.set(B.hash,B);const M=new Set;for(const B of n.featureHighlightBranches){const K=n.commits.find(Ne=>Ne.branches.includes(B));if(!K)continue;const oe=S[B]??null;if(!oe)continue;let ye=K;for(;ye&&ye.hash!==oe;)M.add(ye.hash),ye=ye.parents?.[0]?w.get(ye.parents[0]):void 0}return M}),p=ee(()=>{if(!n.previewHighlightBranches||n.previewHighlightBranches.length===0)return new Set;const S=n.previewMergeBases??{},w=new Map;for(const B of n.commits)w.set(B.hash,B);const M=new Set;for(const B of n.previewHighlightBranches){const K=n.commits.find(Ne=>Ne.branches.includes(B));if(!K)continue;const oe=S[B]??null;if(!oe)continue;let ye=K;for(;ye&&ye.hash!==oe;)M.add(ye.hash),ye=ye.parents?.[0]?w.get(ye.parents[0]):void 0}return M});function g(S,w){s("branchContextMenu",{...w,commitHash:S.hash})}function O(S,w){s("commitContextMenu",{commit:S,...w})}function x(S,w){s("tagContextMenu",{...w,commitHash:S.hash})}const{ROW_HEIGHT:b,VISIBLE_BUFFER:k}=cl,{computeGraphRows:$,computeMaxLane:P}=tb(),R=ee(()=>$([...n.commits],n.graphStyle)),V=ee(()=>P(R.value)),L=ee(()=>{const S=n.stashes||[];if(S.length===0)return n.commits.map((K,oe)=>({type:"commit",commit:K,commitIndex:oe}));const w=[],M=[...S].sort((K,oe)=>new Date(oe.date).getTime()-new Date(K.date).getTime());let B=0;for(let K=0;K<n.commits.length;K++){const oe=n.commits[K],ye=oe.timestamp*1e3;for(;B<M.length&&new Date(M[B].date).getTime()>=ye;)w.push({type:"stash",stash:M[B]}),B++;w.push({type:"commit",commit:oe,commitIndex:K})}for(;B<M.length;)w.push({type:"stash",stash:M[B]}),B++;return w}),ae=T(null),ce=T(0),Oe=T(400);let q=null;const X=ee(()=>{const S=k,w=L.value.length,M=Math.max(0,Math.floor(ce.value/b)-S),B=Math.min(w,Math.ceil((ce.value+Oe.value)/b)+S);return{startIndex:M,endIndex:B}}),E=ee(()=>{const{startIndex:S,endIndex:w}=X.value;return L.value.slice(S,w).map((M,B)=>({row:M,index:S+B,graphRow:M.type==="commit"&&R.value.get(M.commit.hash)||null,isHighlighted:M.type==="commit"?u.value.has(M.commit.hash):!1,isBranchHighlighted:M.type==="commit"?h.value.has(M.commit.hash):!1,isFeatureHighlighted:M.type==="commit"?f.value.has(M.commit.hash):!1,isPreviewHighlighted:M.type==="commit"?p.value.has(M.commit.hash):!1,isMuted:M.type==="commit"&&n.muteNonAncestral?!(R.value.get(M.commit.hash)?.isMainline??!1):!1}))}),U=ee(()=>L.value.length*b),j=ee(()=>X.value.startIndex*b);function W(S){const w=S.target;ce.value=w.scrollTop,q||s("scrollStart"),q&&clearTimeout(q),q=setTimeout(()=>{q=null,s("scrollEnd")},150),n.hasMore&&!n.loading&&!n.loadingMore&&w.scrollTop+w.clientHeight>=w.scrollHeight-200&&s("loadMore")}function I(S,w){w.ctrlKey||w.metaKey?s("compareSelect",S):s("select",S)}function z(S,w,M){if(S.key==="Enter"||S.key===" ")S.preventDefault(),s("select",w);else if(S.key==="ArrowDown"){S.preventDefault();for(let B=M+1;B<L.value.length;B++){const K=L.value[B];if(K.type==="commit"){s("select",K.commit),xe(B);break}}}else if(S.key==="ArrowUp"){S.preventDefault();for(let B=M-1;B>=0;B--){const K=L.value[B];if(K.type==="commit"){s("select",K.commit),xe(B);break}}}}function xe(S){if(!ae.value)return;const w=S*b,M=ae.value.scrollTop,B=M+ae.value.clientHeight;w<M?ae.value.scrollTop=w:w+b>B&&(ae.value.scrollTop=w+b-ae.value.clientHeight)}Ot(()=>{if(ae.value){Oe.value=ae.value.clientHeight;const S=new ResizeObserver(w=>{for(const M of w)Oe.value=M.contentRect.height});S.observe(ae.value),Ct(()=>S.disconnect())}});function J(){return ae.value?.scrollTop??0}function fe(S){ae.value&&(ae.value.scrollTop=S)}return e({getScrollPosition:J,setScrollPosition:fe,scrollToIndex:xe}),(S,w)=>{const M=Jp,B=eb;return v(),y("div",{ref_key:"containerRef",ref:ae,class:"h-full overflow-auto",role:"list","aria-label":"Commit history",onScroll:W},[r.uncommittedChangesCount&&r.uncommittedChangesCount>0?(v(),y("div",{key:0,class:"flex items-center cursor-pointer group sticky top-0 z-10 bg-retro-dark border-b border-retro-border",style:nr({height:`${m(b)}px`}),role:"button",tabindex:"0","aria-selected":r.isUncommittedChangesSelected,onClick:i,onKeydown:o},[te(M,{rowData:{commitHash:"uncommitted",lane:0,color:"#F59E0B",nodeType:"uncommitted",isMainline:!1,connections:[]},maxLane:m(V)},null,8,["maxLane"]),d("div",{class:Ze(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-yellow/15":r.isUncommittedChangesSelected,"group-hover:bg-retro-panel/50":!r.isUncommittedChangesSelected}]),style:nr({height:`${m(b)-4}px`})},[te(m(Oo),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",nb," Uncommitted Changes ("+_(r.uncommittedChangesCount)+") ",1),w[1]||(w[1]=d("span",{class:"flex-1"},null,-1)),w[2]||(w[2]=d("span",{class:"text-retro-muted text-[10px]"},"Working tree",-1))],6)],44,rb)):H("",!0),d("div",{class:"relative",style:nr({height:`${m(U)}px`})},[d("div",{class:"absolute left-0 right-0",style:nr({transform:`translateY(${m(j)}px)`})},[(v(!0),y($e,null,Ye(m(E),({row:K,index:oe,graphRow:ye,isHighlighted:Ne,isBranchHighlighted:Ce,isFeatureHighlighted:He,isPreviewHighlighted:Ue,isMuted:pe})=>(v(),y($e,{key:K.type==="commit"?K.commit.hash:`stash-${K.stash.index}`},[K.type==="commit"?Zp([K.commit.hash,K.commit.message,K.commit.timestamp,K.commit.branches.join("|"),K.commit.tags.join("|"),r.selectedCommit?.hash===K.commit.hash,Ne,Ce,He,Ue,pe,n.currentBranchName||"",n.columnVisibility?.date!==!1,n.columnVisibility?.author!==!1,n.columnVisibility?.commit!==!1],()=>(v(),be(B,{key:0,commit:K.commit,index:K.commitIndex,isSelected:r.selectedCommit?.hash===K.commit.hash,isHighlighted:Ne,isBranchHighlighted:Ce,isFeatureHighlighted:He,isPreviewHighlighted:Ue,isMuted:pe,currentBranchName:n.currentBranchName,localBranchNames:n.localBranchNames,graphRowData:ye,maxLane:m(V),columnVisibility:n.columnVisibility,onClick:Pe=>I(K.commit,Pe),onKeydown:Pe=>z(Pe,K.commit,oe),onBranchContextMenu:Pe=>g(K.commit,Pe),onCommitContextMenu:Pe=>O(K.commit,Pe),onTagContextMenu:Pe=>x(K.commit,Pe)},null,8,["commit","index","isSelected","isHighlighted","isBranchHighlighted","isFeatureHighlighted","isPreviewHighlighted","isMuted","currentBranchName","localBranchNames","graphRowData","maxLane","columnVisibility","onClick","onKeydown","onBranchContextMenu","onCommitContextMenu","onTagContextMenu"])),w,0):H("",!0)],64))),128))],4)],4),(r.loading||r.loadingMore)&&r.commits.length>0?(v(),y("div",sb,[...w[3]||(w[3]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading more commits... ",-1)])])):H("",!0),!r.hasMore&&r.commits.length>0&&!r.loading?(v(),y("div",ib,_(r.commits.length)+" commits loaded ",1)):H("",!0)],544)}}});function ab(r){const e=r.charAt(0).toUpperCase();return e in Hs?e:"M"}function Do(r,e){if(r&&typeof r=="object"){const t=r;if(typeof t.data?.message=="string"&&t.data.message.trim())return t.data.message;if(typeof t.statusMessage=="string"&&t.statusMessage.trim())return t.statusMessage;if(typeof t.message=="string"&&t.message.trim())return t.message}return r instanceof Error&&r.message?r.message:e}function qh(r,e){const t=e.trim().toLowerCase();return t?r.filter(n=>n.message.toLowerCase().includes(t)||n.author.toLowerCase().includes(t)||n.shortHash.includes(t)||n.hash.includes(t)||n.branches.some(s=>s.toLowerCase().includes(t))||n.tags.some(s=>s.toLowerCase().includes(t))):[...r]}function lb(r,e){return e.size===0?[...r]:r.filter(t=>t.branches.some(n=>e.has(n)))}const cb={class:"flex flex-col h-full border-t border-retro-border bg-retro-dark"},ub={class:"flex items-center justify-between p-2 border-b border-retro-border flex-shrink-0"},hb={class:"flex items-center gap-2 text-xs min-w-0"},db={class:"font-mono text-retro-cyan"},fb={class:"font-mono text-retro-cyan"},pb={key:0,class:"px-3 py-1.5 text-xs text-retro-muted border-b border-retro-border flex-shrink-0"},mb={class:"text-retro-green"},gb={class:"text-retro-red"},Ob={key:1,class:"flex-1 flex items-center justify-center"},vb={key:2,class:"flex-1 overflow-auto"},bb={class:"text-retro-text truncate flex-1"},xb={class:"text-retro-muted"},yb={key:0,class:"flex-shrink-0 text-[10px] font-mono"},kb={key:0,class:"text-retro-green"},wb={key:1,class:"text-retro-red ml-1"},Sb={key:1,class:"flex-shrink-0 text-[10px] text-retro-muted italic"},$b={key:3,class:"flex-1 flex items-center justify-center text-retro-muted text-sm"},Cb=Ve({__name:"GitComparisonView",props:{fromCommit:{},toCommit:{},files:{},stats:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=e;function n(s){const i=ab(s);return Hs[i]||Hs.M}return(s,i)=>(v(),y("div",cb,[d("div",ub,[d("div",hb,[i[1]||(i[1]=d("span",{class:"text-retro-muted"},"Comparing",-1)),d("span",db,_(r.fromCommit.shortHash),1),i[2]||(i[2]=d("span",{class:"text-retro-muted"},"→",-1)),d("span",fb,_(r.toCommit.shortHash),1)]),d("button",{class:"p-1 text-retro-muted hover:text-retro-text transition-colors flex-shrink-0","aria-label":"Close comparison",onClick:i[0]||(i[0]=o=>t("close"))},[te(m(Qt),{class:"w-4 h-4"})])]),r.stats?(v(),y("div",pb,[Xe(_(r.stats.filesChanged)+" file"+_(r.stats.filesChanged!==1?"s":"")+" changed, ",1),d("span",mb,"+"+_(r.stats.additions),1),d("span",gb," -"+_(r.stats.deletions),1)])):H("",!0),r.loading?(v(),y("div",Ob,[...i[3]||(i[3]=[d("div",{class:"flex items-center gap-2 text-retro-muted text-sm"},[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"}),Xe(" Loading comparison... ")],-1)])])):r.files&&r.files.length>0?(v(),y("div",vb,[(v(!0),y($e,null,Ye(r.files,o=>(v(),y("div",{key:o.path,class:"flex items-center gap-2 px-3 py-1.5 hover:bg-retro-panel/50 text-xs border-b border-retro-border/50"},[d("span",{class:Ze(["flex-shrink-0 w-4 text-center font-semibold text-[10px]",n(o.status).colorClass])},_(o.status.charAt(0)),3),d("span",bb,[o.oldPath&&o.status.startsWith("R")?(v(),y($e,{key:0},[d("span",xb,_(o.oldPath),1),i[4]||(i[4]=d("span",{class:"text-retro-muted mx-1"},"→",-1))],64)):H("",!0),Xe(" "+_(o.path),1)]),o.binary?(v(),y("span",Sb,"binary")):(v(),y("span",yb,[o.additions>0?(v(),y("span",kb,"+"+_(o.additions),1)):H("",!0),o.deletions>0?(v(),y("span",wb,"-"+_(o.deletions),1)):H("",!0)]))]))),128))])):r.files&&r.files.length===0?(v(),y("div",$b," No differences between these commits ")):H("",!0)]))}}),Qb={":art:":"🎨",":zap:":"⚡",":fire:":"🔥",":bug:":"🐛",":ambulance:":"🚑",":sparkles:":"✨",":memo:":"📝",":rocket:":"🚀",":lipstick:":"💄",":tada:":"🎉",":white_check_mark:":"✅",":lock:":"🔒",":closed_lock_with_key:":"🔐",":bookmark:":"🔖",":rotating_light:":"🚨",":construction:":"🚧",":green_heart:":"💚",":arrow_down:":"⬇️",":arrow_up:":"⬆️",":pushpin:":"📌",":construction_worker:":"👷",":chart_with_upwards_trend:":"📈",":recycle:":"♻️",":heavy_plus_sign:":"➕",":heavy_minus_sign:":"➖",":wrench:":"🔧",":hammer:":"🔨",":globe_with_meridians:":"🌐",":pencil2:":"✏️",":poop:":"💩",":rewind:":"⏪",":twisted_rightwards_arrows:":"🔀",":package:":"📦",":alien:":"👽",":truck:":"🚚",":page_facing_up:":"📄",":boom:":"💥",":bento:":"🍱",":wheelchair:":"♿",":bulb:":"💡",":beers:":"🍻",":speech_balloon:":"💬",":card_file_box:":"🗃️",":loud_sound:":"🔊",":mute:":"🔇",":busts_in_silhouette:":"👥",":children_crossing:":"🚸",":building_construction:":"🏗️",":iphone:":"📱",":clown_face:":"🤡",":egg:":"🥚",":see_no_evil:":"🙈",":camera_flash:":"📸",":alembic:":"⚗️",":mag:":"🔍",":label:":"🏷️",":seedling:":"🌱",":triangular_flag_on_post:":"🚩",":goal_net:":"🥅",":dizzy:":"💫",":wastebasket:":"🗑️",":passport_control:":"🛂",":adhesive_bandage:":"🩹",":monocle_face:":"🧐",":coffin:":"⚰️",":test_tube:":"🧪",":necktie:":"👔",":stethoscope:":"🩺",":bricks:":"🧱",":technologist:":"🧑‍💻",":money_with_wings:":"💸",":thread:":"🧵",":safety_vest:":"🦺"},Pb=/https?:\/\/[^\s<>)"']+/g;function Tb(r){return r.replace(Pb,e=>`<a href="${e}" target="_blank" rel="noopener noreferrer" class="text-retro-blue hover:underline">${e}</a>`)}function Mb(r){return r.replace(/:[a-z0-9_]+:/g,e=>Qb[e]||e)}function Ab(r){if(!r)return"";let e=Mb(r);return e=y1.parse(e),e=Tb(e),e=k1.sanitize(e,{ALLOWED_TAGS:["a","strong","em","code","b","i","br","p","ul","ol","li","pre","blockquote","h1","h2","h3"],ALLOWED_ATTR:["href","target","rel","class"]}),e}const _b={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},Rb={class:"flex items-center gap-2 min-w-0"},Bb={class:"text-retro-cyan font-mono text-sm"},Zb={class:"text-retro-muted text-sm truncate"},Eb={class:"flex items-center gap-1 flex-shrink-0"},Db=["aria-label","title"],Lb={class:"flex-1 overflow-auto p-4 space-y-4"},Xb={class:"space-y-2"},Ib={class:"flex items-center gap-2 text-sm"},Vb={class:"text-retro-text font-mono text-xs bg-retro-panel px-2 py-1 rounded"},zb={class:"flex items-center gap-2 text-sm"},Nb={class:"text-retro-text"},Wb={class:"text-retro-muted"},qb={key:0,class:"flex items-center gap-2 text-sm"},jb={class:"text-retro-text"},Yb={class:"text-retro-muted"},Fb={class:"flex items-center gap-2 text-sm"},Ub={class:"text-retro-text"},Gb={key:1,class:"flex items-start gap-2 text-sm"},Hb={class:"flex flex-wrap gap-1"},Kb=["onClick","title"],Jb={key:2,class:"flex items-start gap-2 text-sm"},ex={class:"flex flex-wrap gap-1"},tx={key:3,class:"flex items-start gap-2 text-sm"},rx={class:"flex flex-wrap gap-1"},nx={class:"space-y-1"},sx={class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded"},ix={key:0,class:"space-y-1"},ox=["innerHTML"],ax={key:1,class:"space-y-2"},lx={class:"flex items-center gap-2 text-sm"},cx={class:"text-retro-muted"},ux={key:0,class:"flex items-center gap-2"},hx={class:"text-retro-green text-xs font-mono"},dx={class:"flex-1 h-2 rounded overflow-hidden bg-retro-panel flex"},fx={class:"text-retro-red text-xs font-mono"},px={key:2,class:"space-y-2"},mx={class:"flex items-center justify-between"},gx={class:"text-retro-muted text-xs uppercase tracking-wide"},Ox={class:"flex items-center gap-1"},vx={key:0,class:"text-retro-muted text-sm py-2"},bx={key:1,class:"space-y-0.5"},xx=["onClick"],yx=["title"],kx={class:"text-retro-text font-mono text-xs truncate flex-1"},wx={class:"text-retro-muted"},Sx={class:"text-retro-text"},$x={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},Cx={key:0,class:"text-retro-green"},Qx={key:1,class:"text-retro-red"},Px={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},Tx={key:2,class:"space-y-0"},Mx=["onClick"],Ax={class:"text-retro-text font-mono text-xs"},_x=["title"],Rx={class:"text-retro-text font-mono text-xs truncate flex-1"},Bx={class:"text-retro-muted"},Zx={class:"text-retro-text"},Ex={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},Dx={key:0,class:"text-retro-green"},Lx={key:1,class:"text-retro-red"},Xx={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},Ix={key:3,class:"flex items-center gap-2 text-retro-muted text-sm py-2"},Vx={key:4,class:"text-retro-muted text-sm py-2"},zx=Ve({__name:"GitCommitDetail",props:{commit:{},files:{},stats:{},loading:{type:Boolean,default:!1},committer:{},committerEmail:{},detailPosition:{default:"inline"}},emits:["close","navigateToCommit","togglePosition","navigatePrev","navigateNext","openFileDiff"],setup(r,{emit:e}){const t=r,n=e,s=T(null),i=T("flat"),o=T(new Set),a=ee(()=>!t.committer||!t.committerEmail?!1:t.committer!==t.commit.author||t.committerEmail!==t.commit.email),l=ee(()=>{const q=t.commit.body;return q?Ab(q):""}),c=ee(()=>{if(!t.stats)return"";const{filesChanged:q,additions:X,deletions:E}=t.stats,j=[`${q} ${q===1?"file":"files"} changed`];return X>0&&j.push(`+${X} insertion${X===1?"":"s"}`),E>0&&j.push(`-${E} deletion${E===1?"":"s"}`),j.join(", ")});function u(q){const X=[];for(const E of q){const U=E.path.split("/");let j=X;for(let W=0;W<U.length;W++){const I=U[W],z=W===U.length-1,xe=U.slice(0,W+1).join("/");let J=j.find(fe=>fe.name===I&&fe.isDirectory===!z);J||(J={name:I,fullPath:xe,isDirectory:!z,children:[],file:z?E:void 0},j.push(J)),z||(j=J.children)}}return h(X),X}function h(q){for(const X of q)if(X.isDirectory)for(h(X.children);X.children.length===1&&X.children[0].isDirectory;){const E=X.children[0];X.name=`${X.name}/${E.name}`,X.fullPath=E.fullPath,X.children=E.children}}function f(q){return[...q].sort((X,E)=>X.isDirectory&&!E.isDirectory?-1:!X.isDirectory&&E.isDirectory?1:X.name.localeCompare(E.name))}function p(q,X,E){const U=[];for(const j of f(q)){const W=E.size===0?!0:E.has(j.fullPath);U.push({key:j.fullPath,depth:X,isDirectory:j.isDirectory,name:j.name,fullPath:j.fullPath,expanded:j.isDirectory?W:!1,file:j.file}),j.isDirectory&&W&&U.push(...p(j.children,X+1,E))}return U}const g=ee(()=>!t.files||t.files.length===0?[]:u(t.files)),O=ee(()=>p(g.value,0,o.value));function x(q){o.value.has(q)?o.value.delete(q):o.value.add(q),o.value=new Set(o.value)}function b(){const q=X=>{const E=[];for(const U of X)U.isDirectory&&(E.push(U.fullPath),E.push(...q(U.children)));return E};o.value=new Set(q(g.value))}function k(){o.value=new Set}We(i,q=>{q==="tree"&&b()});function $(q){return new Date(q*1e3).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})}function P(q){return Hs[q]||{label:q,colorClass:"text-retro-muted"}}const R=ee(()=>{if(!t.stats)return{addPct:0,delPct:0};const q=t.stats.additions+t.stats.deletions;return q===0?{addPct:50,delPct:50}:{addPct:Math.round(t.stats.additions/q*100),delPct:Math.round(t.stats.deletions/q*100)}});function V(q){q.key==="ArrowUp"?(q.preventDefault(),n("navigatePrev")):q.key==="ArrowDown"?(q.preventDefault(),n("navigateNext")):q.key==="Escape"&&(q.preventDefault(),n("close"))}Ot(()=>{Ut(()=>{s.value?.focus()})}),We(()=>t.commit.hash,()=>{Ut(()=>{s.value?.focus()})});function L(){n("close")}function ae(q){n("navigateToCommit",q)}function ce(){n("togglePosition")}function Oe(q){n("openFileDiff",q)}return(q,X)=>(v(),y("section",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:V,class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark focus:outline-none","aria-label":"Commit details",role:"region"},[d("div",_b,[d("div",Rb,[d("span",Bb,_(r.commit.shortHash),1),d("span",Zb,_(r.commit.message.split(`
5
- `)[0]),1)]),d("div",Eb,[d("button",{onClick:ce,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":r.detailPosition==="inline"?"Dock detail to bottom":"Show detail inline",title:r.detailPosition==="inline"?"Dock to bottom":"Show inline"},[r.detailPosition==="inline"?(v(),be(m(qp),{key:0,class:"w-4 h-4 text-retro-muted hover:text-retro-text"})):(v(),be(m(Wp),{key:1,class:"w-4 h-4 text-retro-muted hover:text-retro-text"}))],8,Db),d("button",{onClick:L,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close commit details"},[te(m(Qt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])])]),d("div",Lb,[d("div",Xb,[d("div",Ib,[X[2]||(X[2]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Hash:",-1)),d("code",Vb,_(r.commit.hash),1)]),d("div",zb,[te(m(Zh),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Nb,_(r.commit.author),1),d("span",Wb,"<"+_(r.commit.email)+">",1)]),a.value?(v(),y("div",qb,[te(m(Zh),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),X[3]||(X[3]=d("span",{class:"text-retro-muted text-xs uppercase mr-1"},"Committer:",-1)),d("span",jb,_(r.committer),1),d("span",Yb,"<"+_(r.committerEmail)+">",1)])):H("",!0),d("div",Fb,[te(m(w1),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Ub,_($(r.commit.timestamp)),1)]),r.commit.parents?.length>0?(v(),y("div",Gb,[X[4]||(X[4]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Parents:",-1)),d("div",Hb,[(v(!0),y($e,null,Ye(r.commit.parents,E=>(v(),y("button",{key:E,onClick:U=>ae(E),class:"text-retro-cyan font-mono text-xs bg-retro-panel px-2 py-0.5 rounded hover:bg-retro-dark hover:text-retro-text transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-retro-cyan",title:`Navigate to parent ${E.substring(0,7)}`},_(E.substring(0,7)),9,Kb))),128))])])):H("",!0),r.commit.branches?.length>0?(v(),y("div",Jb,[X[5]||(X[5]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Branches:",-1)),d("div",ex,[(v(!0),y($e,null,Ye(r.commit.branches,E=>(v(),y("span",{key:E,class:"text-retro-green font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},_(E),1))),128))])])):H("",!0),r.commit.tags?.length>0?(v(),y("div",tx,[X[6]||(X[6]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Tags:",-1)),d("div",rx,[(v(!0),y($e,null,Ye(r.commit.tags,E=>(v(),y("span",{key:E,class:"text-retro-yellow font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},_(E),1))),128))])])):H("",!0)]),d("div",nx,[X[7]||(X[7]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Message ",-1)),d("div",sx,_(r.commit.message.split(`
6
- `)[0]),1)]),r.commit.body?(v(),y("div",ix,[X[8]||(X[8]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Body ",-1)),d("div",{class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded commit-body-rendered",innerHTML:l.value},null,8,ox)])):H("",!0),r.stats?(v(),y("div",ax,[d("div",lx,[d("span",cx,_(c.value),1)]),r.stats.additions>0||r.stats.deletions>0?(v(),y("div",ux,[d("span",hx,"+"+_(r.stats.additions),1),d("div",dx,[d("div",{class:"bg-retro-green h-full transition-all",style:nr({width:R.value.addPct+"%"})},null,4),d("div",{class:"bg-retro-red h-full transition-all",style:nr({width:R.value.delPct+"%"})},null,4)]),d("span",fx,"-"+_(r.stats.deletions),1)])):H("",!0)])):H("",!0),r.files?(v(),y("div",px,[d("div",mx,[d("h4",gx," Files Changed ("+_(r.files.length)+") ",1),d("div",Ox,[d("button",{onClick:X[0]||(X[0]=E=>i.value="flat"),class:Ze(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="flat"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Flat file list",title:"Flat file list"},[te(m(Gp),{class:"w-4 h-4"})],2),d("button",{onClick:X[1]||(X[1]=E=>i.value="tree"),class:Ze(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="tree"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Tree file view",title:"Tree file view"},[te(m(Eh),{class:"w-4 h-4"})],2)])]),r.files.length===0?(v(),y("div",vx," No files changed in this commit. ")):i.value==="flat"?(v(),y("ul",bx,[(v(!0),y($e,null,Ye(r.files,E=>(v(),y("li",{key:E.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group cursor-pointer",onClick:U=>Oe(E)},[d("span",{class:Ze(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",P(E.status).colorClass]),title:P(E.status).label},_(E.status),11,yx),te(m(Gs),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",kx,[E.status==="R"&&E.oldPath?(v(),y($e,{key:0},[d("span",wx,_(E.oldPath),1),X[9]||(X[9]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",Sx,_(E.path),1)],64)):(v(),y($e,{key:1},[Xe(_(E.path),1)],64))]),!E.binary&&(E.additions>0||E.deletions>0)?(v(),y("span",$x,[E.additions>0?(v(),y("span",Cx,"+"+_(E.additions),1)):H("",!0),E.deletions>0?(v(),y("span",Qx,"-"+_(E.deletions),1)):H("",!0)])):E.binary?(v(),y("span",Px,"binary")):H("",!0)],8,xx))),128))])):(v(),y("div",Tx,[d("div",{class:"flex items-center gap-2 mb-1"},[d("button",{onClick:b,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Expand all "),X[10]||(X[10]=d("span",{class:"text-retro-muted text-xs"},"|",-1)),d("button",{onClick:k,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Collapse all ")]),(v(!0),y($e,null,Ye(O.value,E=>(v(),y("div",{key:E.key,class:Ze(["flex items-center gap-1 py-0.5 px-1 hover:bg-retro-panel rounded text-sm cursor-pointer",{"select-none":E.isDirectory}]),style:nr({paddingLeft:E.depth*16+4+"px"}),onClick:U=>E.isDirectory?x(E.fullPath):E.file?Oe(E.file):void 0},[E.isDirectory?(v(),y($e,{key:0},[te(m(S1),{class:Ze(["w-3 h-3 text-retro-muted transition-transform flex-shrink-0",{"rotate-90":E.expanded}])},null,8,["class"]),te(m(Eh),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",Ax,_(E.name),1)],64)):E.file?(v(),y($e,{key:1},[d("span",{class:Ze(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",P(E.file.status).colorClass]),title:P(E.file.status).label},_(E.file.status),11,_x),te(m(Gs),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Rx,[E.file.status==="R"&&E.file.oldPath?(v(),y($e,{key:0},[d("span",Bx,_(E.file.oldPath.split("/").pop()),1),X[11]||(X[11]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",Zx,_(E.name),1)],64)):(v(),y($e,{key:1},[Xe(_(E.name),1)],64))]),!E.file.binary&&(E.file.additions>0||E.file.deletions>0)?(v(),y("span",Ex,[E.file.additions>0?(v(),y("span",Dx,"+"+_(E.file.additions),1)):H("",!0),E.file.deletions>0?(v(),y("span",Lx,"-"+_(E.file.deletions),1)):H("",!0)])):E.file.binary?(v(),y("span",Xx,"binary")):H("",!0)],64)):H("",!0)],14,Mx))),128))]))])):r.loading?(v(),y("div",Ix,[...X[12]||(X[12]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading file changes... ",-1)])])):(v(),y("div",Vx," Failed to load file changes. "))])],544))}}),Nx=ci(zx,[["__scopeId","data-v-29f450ea"]]),Wx={class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark","aria-label":"Uncommitted changes details"},qx={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},jx={class:"flex items-center gap-2 min-w-0"},Yx={class:"text-retro-muted text-sm"},Fx={key:0,class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin",title:"Staging..."},Ux={class:"flex-1 overflow-auto p-4 space-y-3"},Gx={class:"space-y-2"},Hx=["disabled"],Kx={class:"space-y-1"},Jx={class:"flex items-center justify-between"},ey={class:"text-retro-green text-xs uppercase tracking-wide font-semibold"},ty={key:0,class:"text-retro-muted text-xs py-1"},ry={key:1,class:"space-y-0.5"},ny=["aria-label","onClick"],sy={class:"text-retro-text font-mono text-xs truncate"},iy={class:"space-y-1"},oy={class:"flex items-center justify-between"},ay={class:"text-retro-yellow text-xs uppercase tracking-wide font-semibold"},ly={key:0,class:"text-retro-muted text-xs py-1"},cy={key:1,class:"space-y-0.5"},uy=["aria-label","onClick"],hy={class:"text-retro-text font-mono text-xs truncate"},dy=Ve({__name:"GitUncommittedDetail",props:{stagedFiles:{default:()=>[]},unstagedFiles:{default:()=>[]},isStaging:{type:Boolean,default:!1},isCommitting:{type:Boolean,default:!1}},emits:["close","stageFiles","unstageFiles","stageAll","unstageAll","commit"],setup(r,{emit:e}){const t=r,n=e,s=T(""),i=T(!1),o=ee(()=>s.value.trim().length>0&&t.stagedFiles.length>0&&!i.value&&!t.isCommitting);function a(O){return Hs[O]||{label:O,colorClass:"text-retro-muted"}}function l(){n("close")}function c(O){n("stageFiles",[O.path])}function u(O){n("unstageFiles",[O.path])}function h(){n("stageAll")}function f(){n("unstageAll")}async function p(){o.value&&(i.value=!0,n("commit",s.value.trim()),s.value="",i.value=!1)}function g(O){(O.metaKey||O.ctrlKey)&&O.key==="Enter"&&(O.preventDefault(),p())}return(O,x)=>(v(),y("section",Wx,[d("div",qx,[d("div",jx,[te(m(Oo),{class:"w-4 h-4 text-retro-yellow"}),x[1]||(x[1]=d("span",{class:"text-retro-yellow font-semibold text-sm"},"Uncommitted Changes",-1)),d("span",Yx,"("+_(r.stagedFiles.length+r.unstagedFiles.length)+" files)",1),t.isStaging?(v(),y("div",Fx)):H("",!0)]),d("button",{onClick:l,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close uncommitted changes details"},[te(m(Qt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])]),d("div",Ux,[d("div",Gx,[Je(d("textarea",{"onUpdate:modelValue":x[0]||(x[0]=b=>nt(s)?s.value=b:null),placeholder:"Commit message...",rows:"3",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none font-mono",onKeydown:g},null,544),[[Lt,m(s)]]),d("button",{disabled:!m(o),class:Ze(["w-full px-3 py-1.5 text-sm font-semibold rounded transition-colors disabled:opacity-40 disabled:cursor-not-allowed",m(o)?"bg-retro-green text-retro-dark hover:bg-retro-green/90":"bg-retro-green/30 text-retro-dark"]),onClick:p},_(m(i)||t.isCommitting?"Committing...":`Commit (${r.stagedFiles.length} staged)`),11,Hx)]),d("div",Kx,[d("div",Jx,[d("h4",ey," Staged Changes ("+_(r.stagedFiles.length)+") ",1),r.stagedFiles.length>0?(v(),y("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:f}," Unstage All ")):H("",!0)]),r.stagedFiles.length===0?(v(),y("div",ty," No staged files. Stage files below to commit. ")):(v(),y("ul",ry,[(v(!0),y($e,null,Ye(r.stagedFiles,b=>(v(),y("li",{key:"staged-"+b.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-red/20 transition-colors opacity-60 group-hover:opacity-100",title:"Unstage file","aria-label":`Unstage ${b.path}`,onClick:k=>u(b)},[te(m(lv),{class:"w-3.5 h-3.5 text-retro-red"})],8,ny),d("span",{class:Ze(["flex-shrink-0 w-4 text-center text-xs font-bold",a(b.status).colorClass])},_(b.status),3),te(m(Gs),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",sy,_(b.oldPath?`${b.oldPath} → ${b.path}`:b.path),1)]))),128))]))]),d("div",iy,[d("div",oy,[d("h4",ay," Unstaged Changes ("+_(r.unstagedFiles.length)+") ",1),r.unstagedFiles.length>0?(v(),y("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:h}," Stage All ")):H("",!0)]),r.unstagedFiles.length===0?(v(),y("div",ly," No unstaged changes. ")):(v(),y("ul",cy,[(v(!0),y($e,null,Ye(r.unstagedFiles,b=>(v(),y("li",{key:"unstaged-"+b.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-green/20 transition-colors opacity-60 group-hover:opacity-100",title:"Stage file","aria-label":`Stage ${b.path}`,onClick:k=>c(b)},[te(m(ll),{class:"w-3.5 h-3.5 text-retro-green"})],8,uy),d("span",{class:Ze(["flex-shrink-0 w-4 text-center text-xs font-bold",a(b.status).colorClass])},_(b.status),3),te(m(Gs),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",hy,_(b.oldPath?`${b.oldPath} → ${b.path}`:b.path),1)]))),128))]))])])]))}}),fy=["aria-label"],py={key:0,class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border truncate font-mono"},my={key:0,class:"my-1 border-t border-retro-border",role:"separator"},gy=["aria-disabled","onClick","onMouseenter"],Oy={key:1,class:"w-4 h-4 flex-shrink-0"},jh=220,vy=36,by=9,xy=29,pn=8,xo=Ve({__name:"GitContextMenu",props:{items:{},x:{},y:{},title:{}},emits:["close","action"],setup(r,{emit:e}){const t=r,n=e,s=T(null),i=T(-1),o=ee(()=>t.items.map((p,g)=>({item:p,i:g})).filter(({item:p})=>!p.disabled).map(({i:p})=>p));let a=!1;function l(p){a&&s.value&&!s.value.contains(p.target)&&n("close")}Ot(()=>{requestAnimationFrame(()=>{a=!0}),document.addEventListener("mousedown",l),document.addEventListener("contextmenu",l),Ut(()=>{s.value?.focus()})}),Ct(()=>{a=!1,document.removeEventListener("mousedown",l),document.removeEventListener("contextmenu",l)});function c(p){const g=o.value;if(g.length===0)return;if(i.value===-1){i.value=p===1?g[0]:g[g.length-1];return}const O=g.indexOf(i.value);if(O===-1){i.value=p===1?g[0]:g[g.length-1];return}const x=O+p;x>=0&&x<g.length&&(i.value=g[x])}function u(p){switch(p.key){case"Escape":p.preventDefault(),n("close");break;case"ArrowDown":p.preventDefault(),c(1);break;case"ArrowUp":p.preventDefault(),c(-1);break;case"Enter":{p.preventDefault();const g=t.items[i.value];g&&!g.disabled&&(n("action",g.key),n("close"));break}}}function h(p){p.disabled||(n("action",p.key),n("close"))}const f=ee(()=>{const p=t.title?xy:0,g=t.items.filter($=>$.separator).length,O=t.items.length*vy+g*by+pn,x=p+O;let b=t.x,k=t.y;return typeof window<"u"&&(b+jh>window.innerWidth-pn&&(b=window.innerWidth-jh-pn),b<pn&&(b=pn),k+x>window.innerHeight-pn&&(k=window.innerHeight-x-pn),k<pn&&(k=pn)),{left:`${b}px`,top:`${k}px`}});return(p,g)=>(v(),be(Pr,{to:"body"},[d("div",{ref_key:"menuRef",ref:s,class:"fixed z-50 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px]",style:nr(m(f)),role:"menu","aria-label":r.title??"Context menu",tabindex:"-1",onKeydown:u},[r.title?(v(),y("div",py,_(r.title),1)):H("",!0),(v(!0),y($e,null,Ye(r.items,(O,x)=>(v(),y($e,{key:O.key},[O.separator?(v(),y("div",my)):H("",!0),d("button",{class:Ze(["w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors focus:outline-none",[O.disabled?"text-retro-muted/50 cursor-not-allowed":O.danger?["text-retro-red hover:bg-retro-red/10 focus:bg-retro-red/10",m(i)===x?"bg-retro-red/10":""]:["text-retro-text hover:bg-retro-cyan/10 focus:bg-retro-cyan/10",m(i)===x?"bg-retro-cyan/10":""]]]),role:"menuitem","aria-disabled":O.disabled||void 0,tabindex:-1,onClick:b=>h(O),onMouseenter:b=>i.value=O.disabled?m(i):x,onMouseleave:g[0]||(g[0]=b=>i.value=-1)},[O.icon?(v(),be(Fs(O.icon),{key:0,class:Ze(["w-4 h-4 flex-shrink-0",O.disabled?"opacity-50":O.danger?"":"text-retro-muted"])},null,8,["class"])):(v(),y("span",Oy)),Xe(" "+_(O.label),1)],42,gy)],64))),128))],44,fy)]))}}),yy=Ve({__name:"GitBranchMenu",props:{branchName:{},isCurrentBranch:{type:Boolean},isLocal:{type:Boolean},x:{},y:{}},emits:["close","checkout","createBranch","deleteBranch","rename","merge","rebase","push","pull","fetch","copyName"],setup(r,{emit:e}){const t=r,n=e,s=ee(()=>[{key:"checkout",label:"Checkout",icon:ys,disabled:t.isCurrentBranch},{key:"rename",label:"Rename",icon:$1,separator:!0},{key:"deleteBranch",label:"Delete",icon:yn,danger:!0,disabled:t.isCurrentBranch},{key:"merge",label:"Merge into Current",icon:jp,separator:!0,disabled:t.isCurrentBranch},{key:"rebase",label:"Rebase Current Onto",icon:Vp,disabled:t.isCurrentBranch},{key:"push",label:"Push",icon:zp,separator:!0},{key:"copyName",label:"Copy Branch Name",icon:Us,separator:!0}]),i=ee(()=>[{key:"checkout",label:"Checkout",icon:ys},{key:"deleteBranch",label:"Delete Remote Branch",icon:yn,separator:!0,danger:!0},{key:"fetch",label:"Fetch",icon:Fp,separator:!0},{key:"pull",label:"Pull into Current",icon:z1},{key:"copyName",label:"Copy Branch Name",icon:Us,separator:!0}]),o=ee(()=>t.isLocal?s.value:i.value),a={checkout:()=>n("checkout"),createBranch:()=>n("createBranch"),deleteBranch:()=>n("deleteBranch"),rename:()=>n("rename"),merge:()=>n("merge"),rebase:()=>n("rebase"),push:()=>n("push"),pull:()=>n("pull"),fetch:()=>n("fetch"),copyName:()=>n("copyName")};function l(c){a[c]?.(),n("close")}return(c,u)=>{const h=xo;return v(),be(h,{items:m(o),x:r.x,y:r.y,title:r.branchName,onAction:l,onClose:u[0]||(u[0]=f=>n("close"))},null,8,["items","x","y","title"])}}}),ky=Ve({__name:"GitCommitMenu",props:{commit:{},x:{},y:{}},emits:["close","addTag","createBranch","checkout","cherryPick","revert","mergeInto","reset","copyHash","copySubject"],setup(r,{emit:e}){const t=e,n=ee(()=>[{key:"addTag",label:"Add Tag",icon:Au},{key:"createBranch",label:"Create Branch",icon:ll},{key:"checkout",label:"Checkout (detached HEAD)",icon:ys,separator:!0},{key:"cherryPick",label:"Cherry Pick",icon:J1},{key:"revert",label:"Revert",icon:Np},{key:"mergeInto",label:"Merge into Current",icon:jp,separator:!0},{key:"reset",label:"Reset Current Branch to Here",icon:Vp,danger:!0},{key:"copyHash",label:"Copy Commit Hash",icon:Us,separator:!0},{key:"copySubject",label:"Copy Commit Subject",icon:Us}]),s={addTag:()=>t("addTag"),createBranch:()=>t("createBranch"),checkout:()=>t("checkout"),cherryPick:()=>t("cherryPick"),revert:()=>t("revert"),mergeInto:()=>t("mergeInto"),reset:()=>t("reset"),copyHash:()=>t("copyHash"),copySubject:()=>t("copySubject")};function i(o){s[o]?.(),t("close")}return(o,a)=>{const l=xo;return v(),be(l,{items:m(n),x:r.x,y:r.y,title:r.commit.shortHash,onAction:i,onClose:a[0]||(a[0]=c=>t("close"))},null,8,["items","x","y","title"])}}}),wy=Ve({__name:"GitTagMenu",props:{tagName:{},x:{},y:{}},emits:["close","viewDetails","deleteTag","pushTag","copyName"],setup(r,{emit:e}){const t=e,n=[{key:"viewDetails",label:"View Details",icon:Au},{key:"deleteTag",label:"Delete Tag",icon:yn,separator:!0,danger:!0},{key:"pushTag",label:"Push Tag",icon:zp},{key:"copyName",label:"Copy Tag Name",icon:Us,separator:!0}],s={viewDetails:()=>t("viewDetails"),deleteTag:()=>t("deleteTag"),pushTag:()=>t("pushTag"),copyName:()=>t("copyName")};function i(o){s[o]?.()}return(o,a)=>{const l=xo;return v(),be(l,{items:n,x:r.x,y:r.y,title:r.tagName,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),Sy=Ve({__name:"GitStashMenu",props:{stashIndex:{},stashMessage:{},x:{},y:{}},emits:["close","apply","pop","drop","createBranch","copyName","copyHash"],setup(r,{emit:e}){const t=e,n=[{key:"apply",label:"Apply Stash",icon:V1},{key:"pop",label:"Pop Stash",icon:Np},{key:"createBranch",label:"Create Branch from Stash",icon:C1,separator:!0},{key:"drop",label:"Drop Stash",icon:yn,separator:!0,danger:!0},{key:"copyName",label:"Copy Stash Reference",icon:Us,separator:!0},{key:"copyHash",label:"Copy Stash Hash",icon:iv}],s={apply:()=>t("apply"),pop:()=>t("pop"),drop:()=>t("drop"),createBranch:()=>t("createBranch"),copyName:()=>t("copyName"),copyHash:()=>t("copyHash")};function i(o){s[o]?.()}return(o,a)=>{const l=xo;return v(),be(l,{items:n,x:r.x,y:r.y,title:r.stashMessage,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),$y=Ve({__name:"GitUncommittedMenu",props:{x:{},y:{}},emits:["close","stash","reset","clean"],setup(r,{emit:e}){const t=e,n=[{key:"stash",label:"Stash Uncommitted Changes",icon:I1},{key:"reset",label:"Reset Working Directory",icon:ys,separator:!0,danger:!0},{key:"clean",label:"Clean Untracked Files",icon:yn,danger:!0}],s={stash:()=>t("stash"),reset:()=>t("reset"),clean:()=>t("clean")};function i(o){s[o]?.()}return(o,a)=>{const l=xo;return v(),be(l,{items:n,x:r.x,y:r.y,title:"Uncommitted Changes",onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y"])}}}),Cy={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},Qy={class:"flex items-center justify-between px-4 py-3 border-b border-retro-border"},Py={class:"text-sm font-mono text-retro-text"},Ty={class:"p-4"},My={key:0,class:"mb-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},Ay={class:"flex justify-end gap-2 px-4 py-3 border-t border-retro-border"},_y=["disabled"],Ry=["disabled"],Gt=Ve({__name:"GitDialog",props:{title:{},visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null},confirmLabel:{default:"Confirm"},confirmDanger:{type:Boolean,default:!1},cancelLabel:{default:"Cancel"}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e;function s(i){i.key==="Escape"&&n("close"),i.key==="Enter"&&!t.loading&&(i.preventDefault(),n("confirm"))}return We(()=>t.visible,i=>{i?document.addEventListener("keydown",s):document.removeEventListener("keydown",s)}),Ct(()=>{document.removeEventListener("keydown",s)}),(i,o)=>(v(),be(Pr,{to:"body"},[te(xn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ht(()=>[r.visible?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",role:"dialog","aria-modal":"true",onClick:o[3]||(o[3]=kr(a=>n("close"),["self"]))},[d("div",Cy,[d("div",Qy,[d("h3",Py,_(r.title),1),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:o[0]||(o[0]=a=>n("close"))},[te(m(Qt),{class:"h-4 w-4"})])]),d("div",Ty,[r.error?(v(),y("div",My,_(r.error),1)):H("",!0),Ep(i.$slots,"default")]),d("div",Ay,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono text-retro-muted hover:text-retro-text bg-retro-panel hover:bg-retro-border rounded transition-colors",disabled:r.loading,onClick:o[1]||(o[1]=a=>n("close"))},_(r.cancelLabel),9,_y),d("button",{type:"button",class:Ze(["px-3 py-1.5 text-xs font-mono rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",[r.confirmDanger?"text-retro-red bg-retro-red/10 border border-retro-red/30 hover:bg-retro-red/20":"text-retro-black bg-retro-cyan hover:bg-retro-cyan/80"]]),disabled:r.loading,onClick:o[2]||(o[2]=a=>n("confirm"))},_(r.loading?"Loading...":r.confirmLabel),11,Ry)])])])):H("",!0)]),_:3})]))}}),ul=wu("gitGraph",()=>{const r=T([]),e=T([]),t=T([]),n=T(new Set),s=T([]),i=T([]),o=T(0),a=T(!1),l=T(null),c=T(null),u=T(null),h=T(!1),f=T(null),p=T(!1),g=T(0),O=T(""),x=T([]),b=T(null),k=T(!1),$=T(!1),P=T(!1),R=T(!1),V=8e3,L=T(null);let ae=null;function ce(N){L.value=N,ae&&clearTimeout(ae),ae=setTimeout(()=>{L.value=null},V)}function Oe(){L.value=null,ae&&(clearTimeout(ae),ae=null)}async function q(N,se,Te,St){if(!b.value)return{success:!1,error:"No working directory set"};try{const Wr=await $fetch(N,{method:St?.method??"POST",body:{workingDirectory:b.value,...se}});return(St?.reloadGraph??!0)&&await or(b.value),{success:!0,data:Wr}}catch(Wr){const qr=Do(Wr,Te);return ce(qr),{success:!1,error:qr}}}const X=T(null),E=T(!1),U=T(!1),j=T(null),W=T([]),I=T([]),z=T(null),xe=T(null),J=T(null),fe=T("inline"),S=T("list"),w=T("rounded"),M=T(!1),B=T({date:!0,author:!0,commit:!0}),K=T(0),oe=T(0),ye=T(null),Ne=T(null),Ce=T(null),He=T(null),Ue=T(null),pe=T(null),Pe=T(null),le=T(null),he=T(null),Y=T(null),Ae=T(null),Ie=T(!1),ze=new Map,_t=10,Ht=ee(()=>{if(!O.value&&x.value.length===0)return r.value;let N=r.value;if(O.value){const se=O.value.toLowerCase(),Te=`${se}:${r.value.length}`;if(ze.has(Te))N=ze.get(Te);else{if(N=qh(N,se),ze.size>=_t){const St=ze.keys().next().value;St&&ze.delete(St)}ze.set(Te,N)}}if(x.value.length>0){const se=new Set(x.value);N=lb(N,se)}return N}),ln=ee(()=>e.value.find(N=>N.isHead)||null);async function or(N){b.value=N,h.value=!0,f.value=null;try{const[se,Te,St,Wr,qr]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:N}}),$fetch("/api/git/status",{query:{workingDirectory:N}}),$fetch("/api/git/stash",{query:{workingDirectory:N}}).then(_n=>_n.stashes).catch(()=>[]),$fetch("/api/git/remotes",{query:{workingDirectory:N}}).then(_n=>_n.remotes).catch(()=>[]),$fetch("/api/git/state",{query:{workingDirectory:N}}).then(_n=>_n.state).catch(()=>null)]);r.value=se.commits,e.value=se.branches,t.value=se.tags,n.value=new Set(se.localBranches??[]),p.value=se.hasMore,g.value=se.totalCount,s.value=Te.stagedFiles??[],i.value=Te.unstagedFiles??[],o.value=(Te.stagedCount??0)+(Te.unstagedCount??0),W.value=St,I.value=Wr,j.value=qr,X.value=Date.now(),await _e()}catch(se){const Te=se instanceof Error?se.message:"Failed to load git graph";f.value=Te,r.value=[],e.value=[],t.value=[],s.value=[],i.value=[],o.value=0,W.value=[],I.value=[]}finally{h.value=!1}}async function Xr(){if(b.value)try{const N=await $fetch("/api/git/status",{query:{workingDirectory:b.value}});s.value=N.stagedFiles??[],i.value=N.unstagedFiles??[],o.value=(N.stagedCount??0)+(N.unstagedCount??0)}catch(N){console.error("Failed to refresh uncommitted changes:",N)}}const xr=T(!1);async function Gn(){if(!(!b.value||!p.value||h.value||xr.value)){xr.value=!0;try{const N=await $fetch("/api/git/log",{query:{workingDirectory:b.value,offset:r.value.length}});r.value=[...r.value,...N.commits],p.value=N.hasMore}catch(N){console.error("Failed to load more commits:",N)}finally{xr.value=!1}}}async function Ir(N){if(l.value=N,c.value=null,u.value=null,a.value=!1,k.value=!0,!b.value){k.value=!1;return}try{const se=await $fetch("/api/git/show",{query:{workingDirectory:b.value,hash:N.hash}});c.value=se.files,u.value=se.stats}catch(se){console.error("Failed to load commit details:",se),c.value=[],u.value={additions:0,deletions:0,filesChanged:0},ce("Failed to load commit details")}finally{k.value=!1}}function cn(){l.value=null,c.value=null,u.value=null,a.value=!1}function Qn(){l.value=null,u.value=null,c.value=null,a.value=!0}function Hn(N){O.value=N,K.value=0,un()}const Rt=ee(()=>O.value?qh(r.value,O.value).map(N=>N.hash):[]);function un(){oe.value=Rt.value.length}function Pn(){Rt.value.length!==0&&(K.value=(K.value+1)%Rt.value.length,un(),Tn())}function Kn(){Rt.value.length!==0&&(K.value=K.value<=0?Rt.value.length-1:K.value-1,un(),Tn())}function Tn(){const N=Rt.value[K.value];if(N){const se=r.value.find(Te=>Te.hash===N);se&&Ir(se)}}function Kt(N){const se=x.value.indexOf(N);se===-1?x.value.push(N):x.value.splice(se,1)}function hn(){O.value="",x.value=[]}async function G(N){if(!b.value)return{success:!1,error:"No working directory set"};R.value=!0;try{const se=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:N}});return se.success&&await or(b.value),{success:se.success,error:se.error}}catch(se){const Te=se instanceof Error?se.message:"Failed to checkout branch";return ce(Te),{success:!1,error:Te}}finally{R.value=!1}}async function de(N,se){if(!b.value)return{success:!1,error:"No working directory set"};try{const Te=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:N,createBranch:!0,fromCommit:se}});return Te.success&&await or(b.value),{success:Te.success,error:Te.error}}catch(Te){return{success:!1,error:Te instanceof Error?Te.message:"Failed to create branch"}}}async function ne(N,se=!1){return q("/api/git/branch",{branchName:N,force:se},"Failed to delete branch",{method:"DELETE"})}async function ve(N){return q("/api/git/branch",{branchName:N,remote:!0},"Failed to delete remote branch",{method:"DELETE"})}async function Be(N){if(!b.value)return{success:!1,error:"No working directory set"};$.value=!0;try{return await $fetch("/api/git/stage",{method:"POST",body:{workingDirectory:b.value,files:N}}),await Xr(),{success:!0}}catch(se){const Te=se instanceof Error?se.message:"Failed to stage files";return ce(Te),{success:!1,error:Te}}finally{$.value=!1}}async function qe(N){if(!b.value)return{success:!1,error:"No working directory set"};$.value=!0;try{return await $fetch("/api/git/unstage",{method:"POST",body:{workingDirectory:b.value,files:N}}),await Xr(),{success:!0}}catch(se){const Te=se instanceof Error?se.message:"Failed to unstage files";return ce(Te),{success:!1,error:Te}}finally{$.value=!1}}async function Ge(N){if(!b.value)return{success:!1,error:"No working directory set"};P.value=!0;try{return await $fetch("/api/git/commit",{method:"POST",body:{workingDirectory:b.value,message:N}}),await or(b.value),{success:!0}}catch(se){const Te=se instanceof Error?se.message:"Failed to commit changes";return ce(Te),{success:!1,error:Te}}finally{P.value=!1}}async function ot(N,se){return q("/api/git/branch-rename",{oldName:N,newName:se},"Failed to rename branch")}async function Mn(N,se){return q("/api/git/merge",{branch:N,...se},"Failed to merge branch")}async function yr(N){return q("/api/git/rebase",{onto:N},"Failed to rebase branch")}async function Jn(N,se,Te,St){return q("/api/git/push",{branch:N,remote:se,force:Te,forceWithLease:St},"Failed to push branch")}async function mi(N,se,Te,St){return q("/api/git/pull",{branch:N,remote:se,noFastForward:Te,squash:St},"Failed to pull branch")}async function gi(N,se,Te){return q("/api/git/fetch",{branch:N,remote:se,...Te},"Failed to fetch")}async function Oi(N,se,Te){return q("/api/git/cherry-pick",{hash:N,recordOrigin:se,noCommit:Te},"Failed to cherry-pick commit")}async function vi(N){return q("/api/git/revert",{hash:N},"Failed to revert commit")}async function bi(N,se){return q("/api/git/reset",{hash:N,mode:se},"Failed to reset to commit")}async function xi(N){if(!b.value)return{success:!1,error:"No working directory set"};try{return await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:b.value,branchName:N}}),await or(b.value),{success:!0}}catch(se){const Te=se?.data?.message||se?.statusMessage||se?.message||"Failed to checkout commit";return ce(Te),{success:!1,error:Te}}}async function yi(N){try{const se=N.message.split(`
7
- `)[0];return await lr(se),{success:!0}}catch(se){const Te=se?.message||"Failed to copy commit subject";return ce(Te),{success:!1,error:Te}}}async function It(N,se,Te,St,Wr){return q("/api/git/tag",{name:N,hash:se,annotated:Te,message:St,pushToRemote:Wr},"Failed to create tag")}async function Vt(N,se){return q("/api/git/tag",{name:N,deleteFromRemote:se},"Failed to delete tag",{method:"DELETE"})}async function es(N,se){return q("/api/git/tag-push",{name:N,remote:se},"Failed to push tag")}async function An(N){if(!b.value)return{success:!1,error:"No working directory set"};try{return{success:!0,data:await $fetch(`/api/git/tag/${encodeURIComponent(N)}`,{query:{workingDirectory:b.value}})}}catch(se){const Te=Do(se,"Failed to get tag detail");return ce(Te),{success:!1,error:Te}}}async function dn(N){try{return await lr(N),{success:!0}}catch(se){const Te=se?.message||"Failed to copy tag name";return ce(Te),{success:!1,error:Te}}}async function Vr(){if(!b.value)return{success:!1,error:"No working directory set"};try{const N=await $fetch("/api/git/stash",{query:{workingDirectory:b.value}});return W.value=N.stashes,{success:!0}}catch(N){const se=Do(N,"Failed to load stashes");return ce(se),{success:!1,error:se}}}async function Qs(N,se){return q("/api/git/stash-apply",{index:N,reinstateIndex:se},"Failed to apply stash")}async function Ps(N,se){return q("/api/git/stash-pop",{index:N,reinstateIndex:se},"Failed to pop stash")}async function Ts(N){return q("/api/git/stash-drop",{index:N},"Failed to drop stash")}async function zr(N,se){return q("/api/git/stash-branch",{index:N,branchName:se},"Failed to create branch from stash")}async function ar(N,se){return q("/api/git/stash",{message:N,includeUntracked:se},"Failed to stash changes")}async function wt(){if(!b.value)return{success:!1,error:"No working directory set"};try{const N=await $fetch("/api/git/remotes",{query:{workingDirectory:b.value}});return I.value=N.remotes,{success:!0}}catch(N){const se=Do(N,"Failed to load remotes");return ce(se),{success:!1,error:se}}}async function Ms(N,se){return q("/api/git/remote",{name:N,url:se},"Failed to add remote")}async function ts(N,se){return q("/api/git/remote",{name:N,newUrl:se},"Failed to edit remote",{method:"PUT"})}async function ki(N){return q("/api/git/remote",{name:N},"Failed to delete remote",{method:"DELETE"})}async function rs(N,se){return q("/api/git/fetch",{all:!0,prune:N,pruneTags:se},"Failed to fetch all")}function Nr(){fe.value=fe.value==="inline"?"bottom":"inline"}function _r(){S.value=S.value==="list"?"tree":"list"}function As(N){w.value=N}function ns(){M.value=!M.value}function wi(N){B.value={...B.value,[N]:!B.value[N]}}async function Si(N){if(ye.value=N,Ne.value=null,N&&b.value)try{const se=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:N}});Ne.value=se.mergeBase}catch{Ne.value=null}}async function ss(N,se){if(Ce.value=N,He.value=null,Ue.value=se??null,N&&b.value)try{const Te=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:N,baseBranch:se??void 0}});He.value=Te.mergeBase}catch{He.value=null}}async function $i(N,se){if(pe.value=N,Pe.value=null,le.value=se??null,N&&b.value)try{const Te=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:N,baseBranch:se??void 0}});Pe.value=Te.mergeBase}catch{Pe.value=null}}async function fn(N,se,Te){try{const St=await $fetch("/api/git/merge-base",{params:{workingDirectory:b.value,branch:N,baseBranch:se??void 0}});Te.value=St.mergeBase}catch{Te.value=null}}async function _e(){if(!b.value)return;const N=[];ye.value&&N.push(fn(ye.value,void 0,Ne)),Ce.value&&N.push(fn(Ce.value,Ue.value,He)),pe.value&&N.push(fn(pe.value,le.value,Pe)),N.length>0&&await Promise.all(N)}function F(N){const se=r.value.find(Te=>Te.hash===N||Te.shortHash===N);se&&Ir(se)}async function xt(N){return q("/api/git/reset",{hash:"HEAD",mode:N},"Failed to reset working directory")}async function Q(){return q("/api/git/clean",{},"Failed to clean untracked files")}function Z(N){xe.value=N}function A(){xe.value=null}function D(N){J.value=N}function ie(){J.value=null}const me=T(null),ue=T(null),ke=T(!1),Ke=ee(()=>!!z.value&&!!l.value);function it(N){z.value=N,N&&l.value&&Ee()}function Bt(){z.value=null,me.value=null,ue.value=null,ke.value=!1}async function Ee(){if(!(!b.value||!l.value||!z.value)){ke.value=!0;try{const N=z.value.hash,se=l.value.hash,Te=await $fetch("/api/git/diff",{query:{workingDirectory:b.value,from:N,to:se}});me.value=Te.files,ue.value=Te.stats}catch(N){console.error("Failed to load comparison:",N),ce("Failed to load commit comparison"),me.value=null,ue.value=null}finally{ke.value=!1}}}async function lr(N){navigator?.clipboard&&await navigator.clipboard.writeText(N)}async function _s(N,se){he.value=se,Y.value=N,Ae.value=null,Ie.value=!0,await l1()}function Rh(){he.value=null,Y.value=null,Ae.value=null,Ie.value=!1}async function l1(){if(!b.value||!Y.value||!he.value){Ie.value=!1;return}Ie.value=!0;try{const N=await $fetch("/api/git/file-diff",{query:{workingDirectory:b.value,commitHash:Y.value,filePath:he.value.path}});Ae.value=N}catch(N){console.error("Failed to load file diff:",N),ce("Failed to load file diff"),Ae.value=null}finally{Ie.value=!1}}function c1(){r.value=[],e.value=[],t.value=[],n.value=new Set,s.value=[],i.value=[],o.value=0,a.value=!1,l.value=null,c.value=null,u.value=null,h.value=!1,f.value=null,p.value=!1,g.value=0,O.value="",x.value=[],b.value=null,X.value=null,E.value=!1,U.value=!1,j.value=null,xr.value=!1,k.value=!1,$.value=!1,P.value=!1,R.value=!1,W.value=[],I.value=[],z.value=null,me.value=null,ue.value=null,ke.value=!1,xe.value=null,J.value=null,fe.value="inline",S.value="list",w.value="rounded",M.value=!1,B.value={date:!0,author:!0,commit:!0},K.value=0,oe.value=0,ye.value=null,Ce.value=null,He.value=null,Ue.value=null,pe.value=null,Pe.value=null,le.value=null,he.value=null,Y.value=null,Ae.value=null,Ie.value=!1,Oe(),ze.clear()}async function u1(){if(!b.value||U.value||h.value)return!1;U.value=!0;try{const N=(await $fetch("/api/git/state",{query:{workingDirectory:b.value}})).state,se=j.value;if(j.value=N,X.value=Date.now(),!se)return!1;const Te=se.headCommit!==N.headCommit||se.branchListHash!==N.branchListHash,St=se.workingTreeHash!==N.workingTreeHash,Wr=se.stashListHash!==N.stashListHash;if(Te){const[Rn,Bo,f1]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:b.value}}),$fetch("/api/git/status",{query:{workingDirectory:b.value}}),$fetch("/api/git/stash",{query:{workingDirectory:b.value}}).then(p1=>p1.stashes).catch(()=>[])]);return r.value=Rn.commits,e.value=Rn.branches,t.value=Rn.tags,n.value=new Set(Rn.localBranches??[]),p.value=Rn.hasMore,g.value=Rn.totalCount,s.value=Bo.stagedFiles??[],i.value=Bo.unstagedFiles??[],o.value=(Bo.stagedCount??0)+(Bo.unstagedCount??0),W.value=f1,await _e(),!0}if(!St&&!Wr)return!1;const[qr,_n]=await Promise.all([St?$fetch("/api/git/status",{query:{workingDirectory:b.value}}):Promise.resolve(null),Wr?$fetch("/api/git/stash",{query:{workingDirectory:b.value}}).then(Rn=>Rn.stashes).catch(()=>[]):Promise.resolve(null)]);return qr&&(s.value=qr.stagedFiles??[],i.value=qr.unstagedFiles??[],o.value=(qr.stagedCount??0)+(qr.unstagedCount??0)),_n&&(W.value=_n),!0}catch(N){return console.error("Failed to refresh git graph:",N),!1}finally{U.value=!1}}function h1(){E.value=!0}function d1(){E.value=!1}return{commits:Re(r),branches:Re(e),tags:Re(t),localBranchNames:Re(n),stagedFiles:Re(s),unstagedFiles:Re(i),uncommittedChangesCount:Re(o),isUncommittedChangesSelected:Re(a),selectedCommit:Re(l),selectedCommitFiles:Re(c),selectedCommitStats:Re(u),loading:Re(h),loadingMore:Re(xr),error:Re(f),hasMore:Re(p),totalCount:Re(g),searchQuery:Re(O),filteredBranches:Re(x),workingDirectory:Re(b),stashes:Re(W),remotes:Re(I),comparisonCommit:Re(z),comparisonFiles:Re(me),comparisonStats:Re(ue),comparisonLoading:Re(ke),isComparing:Ke,activeDialog:Re(xe),activeContextMenu:Re(J),detailViewPosition:Re(fe),fileViewMode:Re(S),graphStyle:Re(w),muteNonAncestral:Re(M),columnVisibility:Re(B),searchResultIndex:Re(K),searchResultCount:Re(oe),selectedFeatureId:Re(ye),featureMergeBase:Re(Ne),conversationBranch:Re(Ce),conversationMergeBase:Re(He),conversationBaseBranch:Re(Ue),previewBranch:Re(pe),previewMergeBase:Re(Pe),previewBaseBranch:Re(le),diffViewerFile:Re(he),diffViewerCommitHash:Re(Y),diffViewerContent:Re(Ae),diffViewerLoading:Re(Ie),lastRefreshTime:Re(X),isPollingActive:Re(E),isRefreshing:Re(U),isLoadingDetails:Re(k),isStaging:Re($),isCommitting:Re(P),isCheckingOut:Re(R),operationError:Re(L),filteredCommits:Ht,currentBranch:ln,searchResultHashes:Rt,loadGitGraph:or,loadMoreCommits:Gn,refreshUncommittedChanges:Xr,selectCommit:Ir,selectUncommittedChanges:Qn,clearSelection:cn,setSearchQuery:Hn,toggleBranchFilter:Kt,clearFilters:hn,nextSearchResult:Pn,prevSearchResult:Kn,checkoutBranch:G,createBranch:de,deleteLocalBranch:ne,deleteRemoteBranch:ve,stageFiles:Be,unstageFiles:qe,commitChanges:Ge,reset:c1,clearOperationError:Oe,renameBranch:ot,mergeBranch:Mn,rebaseBranch:yr,pushBranch:Jn,pullBranch:mi,fetchBranch:gi,cherryPickCommit:Oi,revertCommit:vi,resetToCommit:bi,checkoutCommit:xi,copyCommitSubject:yi,createTag:It,deleteTag:Vt,pushTag:es,getTagDetail:An,copyTagName:dn,loadStashes:Vr,applyStash:Qs,popStash:Ps,dropStash:Ts,stashBranch:zr,stashChanges:ar,loadRemotes:wt,addRemote:Ms,editRemote:ts,deleteRemote:ki,fetchAll:rs,setActiveDialog:Z,clearActiveDialog:A,setActiveContextMenu:D,clearActiveContextMenu:ie,selectComparisonCommit:it,clearComparison:Bt,loadComparisonData:Ee,copyToClipboard:lr,toggleDetailViewPosition:Nr,toggleFileViewMode:_r,setGraphStyle:As,toggleMuteNonAncestral:ns,toggleColumnVisibility:wi,navigateToCommit:F,resetWorking:xt,cleanUntracked:Q,setSelectedFeatureId:Si,setConversationBranch:ss,setPreviewBranch:$i,openFileDiff:_s,closeFileDiff:Rh,checkAndRefresh:u1,startPolling:h1,stopPolling:d1}});async function Yh(){if(typeof window>"u")return{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};try{const r=await $fetch("/api/conversations");if(!r||!Array.isArray(r.conversations))return console.warn("[conversationStorage] Invalid data structure from server"),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};r.version!==Ca&&console.warn(`[conversationStorage] Storage version mismatch: ${r.version} vs ${Ca}`);const e=r.conversations.map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),n=(Array.isArray(r.archivedConversations)?r.archivedConversations:[]).map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),s=e.filter(R1),i=n.filter(B1),o=e.length-s.length,a=n.length-i.length;return o>0&&console.warn(`[conversationStorage] Discarded ${o} corrupted active conversation(s)`),a>0&&console.warn(`[conversationStorage] Discarded ${a} corrupted archive conversation(s)`),{conversations:s,archivedConversations:i,discardedConversations:o,discardedArchives:a}}catch(r){return console.error("[conversationStorage] Failed to load conversations:",r),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0}}}async function By(r,e=[]){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations",{method:"POST",body:{version:Ca,conversations:r,archivedConversations:e}}),!0}catch(t){return console.error("Failed to save conversations:",t),!1}}async function Fh(r){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations/update",{method:"POST",body:{version:Ca,conversation:r}}),!0}catch(e){return console.error("Failed to save conversation:",e),!1}}function Zy(r){return r?r.map(e=>{switch(e.type){case"text":return e.text;case"tool_use":return`[${e.name}] ${e.inputSummary}`;case"tool_result":return e.isError?`Error: ${e.content.slice(0,100)}`:"";case"thinking":case"result_summary":case"session_init":return"";default:return""}}).filter(Boolean).join(`
8
- `):""}const vr=wu("chat",()=>{const r=T(!1),e=T(Z1),t=T("ask"),n=T(""),s=T([]),i=T([]),o=T(null),a=T("active"),l=T(new Set),c=new Map,u=T(!1),h=T(0),f=new Map,p=1200,g=T(null),O=T(null);let x=null;function b(Q){return Q?c.get(Q)??null:null}function k(Q){let Z=c.get(Q);return Z||(Z={session:null,pendingPermission:null,pendingPlanApproval:null,lastError:null,debugEvents:[]},c.set(Q,Z)),Z}const $=ee(()=>s.value.find(Q=>Q.id===o.value)||null),P=ee(()=>$.value?.messages??[]),R=ee(()=>(h.value,b(o.value)?.session??null)),V=ee(()=>(h.value,b(o.value)?.pendingPermission??null)),L=ee(()=>(h.value,b(o.value)?.pendingPlanApproval??null)),ae=ee(()=>(h.value,b(o.value)?.lastError??null)),ce=ee(()=>(h.value,b(o.value)?.debugEvents??[])),Oe=ee(()=>R.value?.status==="streaming"),q=ee(()=>$.value?.providerSessionId??""),X=ee(()=>P.value.length>0),E=ee(()=>P.value[P.value.length-1]||null);function U(Q){return l.value.has(Q)}const j=ee(()=>o.value?l.value.has(o.value):!1),W=ee(()=>s.value.length>0),I=ee(()=>i.value.length>0),z=ee(()=>s.value.length),xe=ee(()=>z.value>=Lh),J=ee(()=>s.value),fe=ee(()=>i.value),S=ee(()=>g.value&&s.value.find(Q=>Q.id===g.value)||null);function w(Q){return g.value===Q}function M(Q){a.value=Q}async function B(Q){if(!(!Q?.previewBranch||!Q.worktreePath))try{const Z=await $fetch("/api/chat/preview-sync",{method:"POST",body:{previewBranch:Q.previewBranch,worktreePath:Q.worktreePath}});if(!Z.success)throw new Error(Z.error||"Unknown preview sync failure")}catch(Z){console.warn("[chat] Failed to sync preview branch after worktree update",{conversationId:Q.id,previewBranch:Q.previewBranch,worktreePath:Q.worktreePath,error:Z instanceof Error?Z.message:String(Z)})}}async function K(Q){if(U(Q))return{success:!1,error:"Cannot archive while this conversation is streaming"};if(s.value.findIndex(A=>A.id===Q)===-1)return{success:!1,error:"Conversation not found"};try{const A=await $fetch(`/api/conversations/${Q}/archive`,{method:"POST"});if(A.success&&A.archived){const D=f.get(Q);return D&&(clearTimeout(D),f.delete(Q)),c.delete(Q),s.value=Array.isArray(A.conversations)?A.conversations:s.value.filter(ie=>ie.id!==Q),i.value=Array.isArray(A.archivedConversations)?A.archivedConversations:[A.archived,...i.value],dn(),g.value===Q&&(g.value=null),o.value===Q&&(o.value=s.value[0]?.id??null),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:o.value}}).catch(ie=>{console.error("Failed to save active conversation:",ie)}),{success:!0}}return{success:!1,error:"Failed to archive conversation"}}catch(A){return{success:!1,error:A instanceof Error?A.message:"Failed to archive conversation"}}}async function oe(Q,Z){if(fn().atLimit)return{success:!1,error:`Cannot restore. Active conversations reached ${Xh}.`};if(!i.value.some(D=>D.id===Q))return{success:!1,error:"Archived conversation not found"};try{const D=await $fetch(`/api/conversations/archives/${Q}/restore`,{method:"POST",body:{baseBranch:Z}});return D.success&&D.conversation?(s.value=Array.isArray(D.conversations)?D.conversations:[D.conversation,...s.value],Array.isArray(D.archivedConversations)?i.value=D.archivedConversations:i.value=i.value.filter(ie=>ie.id!==Q),a.value="active",Qs(D.conversation.id),An(),It(),{success:!0,conversationId:D.conversation.id}):{success:!1,error:"Failed to restore archived conversation"}}catch(D){return{success:!1,error:D instanceof Error?D.message:"Failed to restore archived conversation"}}}async function ye(Q){const Z=i.value.findIndex(A=>A.id===Q);if(Z===-1)return{success:!1,error:"Archived conversation not found"};try{return await $fetch(`/api/conversations/archives/${Q}`,{method:"DELETE"}),i.value.splice(Z,1),dn(),{success:!0}}catch{return i.value.splice(Z,1),It(),{success:!0}}}async function Ne(){if(!(typeof window>"u"))try{const Q=await $fetch("/api/settings");if(Q){if(typeof Q.panelWidth=="number"){const D=Q.panelWidth;D>=Ih&&D<=Vh&&(e.value=D)}typeof Q.isPanelOpen=="boolean"&&(r.value=Q.isPanelOpen),typeof Q.activeConversationId=="string"&&(o.value=Q.activeConversationId);const{useSettingsStore:Z}=await vs(async()=>{const{useSettingsStore:D}=await import("./DjSReRpH.js").then(ie=>ie.s);return{useSettingsStore:D}},__vite__mapDeps([0,1,2]),import.meta.url),A=Z();await A.hydrate(),t.value=A.permissionMode}}catch(Q){console.error("Failed to load chat settings:",Q)}}function Ce(Q){t.value=Q,typeof window<"u"&&vs(async()=>{const{useSettingsStore:Z}=await import("./DjSReRpH.js").then(A=>A.s);return{useSettingsStore:Z}},__vite__mapDeps([0,1,2]),import.meta.url).then(({useSettingsStore:Z})=>{Z().setPermissionMode(Q)})}function He(Q,Z){const A=Z??o.value;if(!A)return;const D=k(A);D.pendingPermission=Q,h.value++}function Ue(Q){const Z=Q??o.value;if(!Z)return;const A=c.get(Z);A&&(A.pendingPermission=null,h.value++)}function pe(Q,Z){const A=Z??o.value;if(!A)return;const D=k(A);D.pendingPlanApproval=Q,h.value++}function Pe(Q){const Z=Q??o.value;if(!Z)return;const A=c.get(Z);A&&(A.pendingPlanApproval=null,h.value++)}function le(){r.value=!r.value,Ae()}function he(){r.value=!0,Ae()}function Y(){r.value=!1,Ae()}function Ae(){typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{isPanelOpen:r.value}}).catch(Q=>{console.error("Failed to save panel state:",Q)})}function Ie(Q){const Z=Math.max(Ih,Math.min(Vh,Q));e.value=Z,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{panelWidth:Z}}).catch(A=>{console.error("Failed to save panel width:",A)})}function ze(Q){n.value=Q}function _t(Q,Z){const A=Z??o.value;if(!A)return;const D=s.value.find(ie=>ie.id===A);D&&(D.providerSessionId=Q)}function Ht(Q,Z){const A=s.value.find(D=>D.id===Q);A&&(A.worktreeBranch=Z,A.lastCommitTime=new Date().toISOString())}async function ln(Q){const Z=s.value.find(D=>D.id===Q);if(!Z?.worktreeBranch)return null;const A=Z.worktreeBranch.trim();if(!A)return null;try{const ie=(await $fetch("/api/specs/features")).features.find(me=>me.id===A);return ie?(Z.featureId!==ie.id&&(Z.featureId=ie.id,Z.updatedAt=new Date().toISOString(),It()),ie.id):null}catch(D){return console.warn("[chat] Failed to map branch to feature",{conversationId:Q,branchName:A,error:D instanceof Error?D.message:String(D)}),null}}function or(Q,Z,A){const D=s.value.find(ie=>ie.id===Q);D&&(D.providerId=Z,D.providerModelKey=A)}function Xr(Q){const Z=Q??o.value;if(!Z)return;const A=s.value.find(D=>D.id===Z);A&&(A.providerSessionId="")}function xr(Q){return s.value.find(A=>A.id===Q)?.providerSessionId??""}function Gn(Q){l.value.add(Q)}function Ir(Q){l.value.delete(Q)}function cn(Q,Z){const A=Z??o.value;if(!A)return;const D=s.value.find(ie=>ie.id===A);D&&D.messages.push(Q)}function Qn(Q,Z,A){const D={id:zh(),role:"user",content:Q,attachments:A&&A.length>0?A:void 0,timestamp:new Date().toISOString()};return cn(D,Z),D}function Hn(Q){const Z={id:zh(),role:"assistant",content:"",timestamp:new Date().toISOString(),status:"streaming"};return cn(Z,Q),Z}function Rt(Q,Z,A){const D=A??o.value;if(!D)return;const ie=s.value.find(ue=>ue.id===D);if(!ie)return;const me=ie.messages.findIndex(ue=>ue.id===Q);me!==-1&&(ie.messages[me]={...ie.messages[me],...Z})}function un(Q,Z){const A=s.value.find(ie=>ie.id===Z);if(!A)return;const D=A.messages.findIndex(ie=>ie.id===Q);D!==-1&&(A.messages[D]={...A.messages[D],content:"",status:"streaming",contentBlocks:[]})}function Pn(Q,Z,A){const D=A??o.value;if(!D)return;const ie=s.value.find(ue=>ue.id===D);if(!ie)return;const me=ie.messages.findIndex(ue=>ue.id===Q);me!==-1&&(ie.messages[me].content+=Z)}function Kn(Q,Z,A){const D=A??o.value;if(!D)return;const ie=s.value.find(ue=>ue.id===D);if(!ie)return;const me=ie.messages.findIndex(ue=>ue.id===Q);if(me!==-1){const ue=ie.messages[me],ke=ue.tools?[...ue.tools,Z]:[Z];ie.messages[me]={...ue,tools:ke}}}function Tn(Q,Z,A,D){const ie=D??o.value;if(!ie)return;const me=s.value.find(ke=>ke.id===ie);if(!me)return;const ue=me.messages.findIndex(ke=>ke.id===Q);if(ue!==-1){const ke=me.messages[ue];if(ke.tools){const Ke=ke.tools.findIndex(it=>it.id===Z);if(Ke!==-1){const it=[...ke.tools];it[Ke]={...it[Ke],...A},me.messages[ue]={...ke,tools:it}}}}Vt(ie,!1)}function Kt(Q){Q.contentBlocks&&(Q.content=Zy(Q.contentBlocks))}function hn(Q,Z){if(Q.type!==Z.type)return!0;switch(Z.type){case"text":return Q.text!==Z.text;case"tool_use":{const A=Q;return A.name!==Z.name||A.inputSummary!==Z.inputSummary}case"tool_result":{const A=Q;return A.content!==Z.content||A.isError!==Z.isError}default:return!1}}function G(Q,Z){const A=Z??o.value;if(!A)return;const D=s.value.find(me=>me.id===A);if(!D)return;const ie=D.messages.find(me=>me.id===Q);ie&&!ie.contentBlocks&&(ie.contentBlocks=[])}function de(Q,Z,A){const D=A??o.value;if(!D)return;const ie=s.value.find(ue=>ue.id===D);if(!ie)return;const me=ie.messages.find(ue=>ue.id===Q);me&&(me.contentBlocks||(me.contentBlocks=[]),me.contentBlocks.push(Z),Kt(me))}function ne(Q,Z,A,D){const ie=D??o.value;if(!ie)return;const me=s.value.find(Bt=>Bt.id===ie);if(!me)return;const ue=me.messages.find(Bt=>Bt.id===Q);if(!ue?.contentBlocks)return;const ke=ue.contentBlocks.findIndex(Bt=>Bt.id===Z);if(ke===-1)return;const it={...ue.contentBlocks[ke]};A(it),ue.contentBlocks[ke]=it}function ve(Q,Z,A,D,ie){const me=D??o.value;if(!me)return;const ue=s.value.find(lr=>lr.id===me);if(!ue)return;const ke=ue.messages.find(lr=>lr.id===Q);if(!ke?.contentBlocks)return;const Ke=ke.contentBlocks.findIndex(lr=>lr.id===Z);if(Ke===-1)return;const it=ke.contentBlocks[Ke],Bt={...it};A(Bt),ke.contentBlocks[Ke]=Bt,ie?.syncContent!==!1&&hn(it,Bt)&&Kt(ke),Vt(me,!1)}function Be(Q,Z,A){const D=A??o.value;if(!D)return;const ie=s.value.find(ue=>ue.id===D);if(!ie)return;const me=ie.messages.find(ue=>ue.id===Q);me&&(me.contentBlocks||(me.contentBlocks=[]),me.contentBlocks.push(Z),Kt(me),Vt(D,!1))}function qe(Q,Z,A){const D=A??o.value;if(!D)return null;const ie=s.value.find(ue=>ue.id===D);if(!ie)return null;const me=ie.messages.find(ue=>ue.id===Q);return me?.contentBlocks?me.contentBlocks.find(ue=>ue.type==="tool_use"&&ue.toolUseId===Z)??null:null}function Ge(Q,Z,A,D,ie){const me=s.value.find(ke=>ke.id===ie);if(!me)return;const ue=me.messages.findIndex(ke=>ke.id===Q);ue!==-1&&(me.messages[ue]={...me.messages[ue],content:A,contentBlocks:Z,status:D},Vt(ie,!0))}function ot(Q,Z){const A=Z??o.value;if(!A)return;const D=c.get(A);D?.session&&(D.session.status=Q,h.value++)}function Mn(Q,Z){const A=Z??o.value;if(!A)return;const D=k(A);D.session={sessionId:Q,cwd:n.value,status:"streaming",startedAt:new Date().toISOString()},D.lastError=null,h.value++}function yr(Q){const Z=Q??o.value;if(!Z)return;const A=c.get(Z);A?.session&&(A.session.status="idle",h.value++)}function Jn(Q,Z){const A=Z??o.value;if(!A)return;const D=k(A);D.session&&(D.session.status="error",D.session.error=Q),D.lastError=Q,h.value++}function mi(Q,Z){if(!u.value)return;const A=Z??o.value;if(!A)return;const D=k(A),ie=(()=>{if(typeof Q.payload=="string")return Q.payload;try{return JSON.stringify(Q.payload,null,2)}catch{return String(Q.payload)}})(),me=8e3,ue=300,ke=ie.length>me?`${ie.slice(0,me)}
9
- ... (truncated)`:ie;D.debugEvents.push({id:`dbg-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:new Date().toISOString(),direction:Q.direction,channel:Q.channel,eventType:Q.eventType||"unknown",payload:ke}),D.debugEvents.length>ue&&D.debugEvents.splice(0,D.debugEvents.length-ue),h.value++}function gi(Q){u.value=Q}function Oi(Q){const Z=Q??o.value;if(!Z)return;const A=c.get(Z);A&&(A.debugEvents=[],h.value++)}function vi(){if(!o.value)return;const Q=s.value.find(A=>A.id===o.value);Q&&(Q.messages=[]);const Z=o.value;c.delete(Z),h.value++}function bi(Q){const Z=Q??o.value;if(!Z)return;const A=c.get(Z);A&&(A.lastError=null,A.session&&(A.session.error=void 0),h.value++)}async function xi(){const Q=await Yh();if(s.value=Q.conversations,i.value=Q.archivedConversations,Q.discardedArchives>0&&console.warn(`[chat] Skipped ${Q.discardedArchives} corrupted archived conversation(s)`),An(),dn(),!g.value){const Z=s.value.find(A=>!!A.previewBranch&&!A.finalized);Z&&(g.value=Z.id)}if(o.value){const Z=s.value.find(A=>A.id===o.value);Z&&Z.cwd?n.value=Z.cwd:Z||(o.value=null,r.value=!1)}}async function yi(){const Q=await Yh(),Z=new Map(s.value.map(ue=>[ue.id,ue])),A=new Set(Q.conversations.map(ue=>ue.id));let D=0,ie=0,me=0;for(const ue of Q.conversations){const ke=Z.get(ue.id);if(!ke)s.value.push(ue),Z.set(ue.id,ue),D++,console.log(`[chat] refresh: added new conversation ${ue.id} (source=${ue.source}, msgs=${ue.messages.length})`);else if(ue.source!=="user"&&(ue.messages.length>ke.messages.length||ue.updatedAt>(ke.updatedAt||""))){const Ke=s.value.findIndex(it=>it.id===ue.id);Ke!==-1&&(s.value.splice(Ke,1,ue),console.log(`[chat] refresh: updated conversation ${ue.id} (msgs: ${ke.messages.length} → ${ue.messages.length}, updatedAt: ${ke.updatedAt} → ${ue.updatedAt})`)),ie++}else ke&&ue.messages.length!==ke.messages.length&&console.log(`[chat] refresh: skipped update for ${ue.id} (source=${ue.source}, server msgs=${ue.messages.length}, local msgs=${ke.messages.length})`)}for(let ue=s.value.length-1;ue>=0;ue--){const ke=s.value[ue];!A.has(ke.id)&&!l.value.has(ke.id)&&(console.log(`[chat] refresh: removed conversation ${ke.id} (no longer on server)`),o.value===ke.id&&(o.value=null),s.value.splice(ue,1),me++)}return Q.archivedConversations&&(i.value=Q.archivedConversations),(D>0||ie>0||me>0)&&An(),console.log(`[chat] refreshServerConversations: loaded=${Q.conversations.length}, added=${D}, updated=${ie}, removed=${me}`),D+ie+me}function It(){By(s.value,i.value)}function Vt(Q,Z=!1){const A=s.value.find(D=>D.id===Q);if(A)if(Z){const D=f.get(Q);D&&(clearTimeout(D),f.delete(Q)),A.updatedAt=new Date().toISOString(),Fh(A)}else{if(f.get(Q))return;const ie=setTimeout(()=>{A.updatedAt=new Date().toISOString(),Fh(A),f.delete(Q)},p);f.set(Q,ie)}}function es(Q=!1){o.value&&Vt(o.value,Q)}function An(){s.value.sort((Q,Z)=>new Date(Z.createdAt).getTime()-new Date(Q.createdAt).getTime())}function dn(){i.value.sort((Q,Z)=>new Date(Z.archivedAt).getTime()-new Date(Q.archivedAt).getTime())}async function Vr(Q){if(fn().atLimit)return"";const A=E1();let D=null;if(Q?.featureId){const ke=await $fetch("/api/chat/worktree",{method:"POST",body:{conversationId:A,featureId:Q.featureId,baseBranch:Q.baseBranch}});if(!ke.success&&ke.error)throw new Error(ke.error);D=ke}let ie=null;if(typeof window<"u")try{const{useSettingsStore:ke}=await vs(async()=>{const{useSettingsStore:it}=await import("./DjSReRpH.js").then(Bt=>Bt.s);return{useSettingsStore:it}},__vite__mapDeps([0,1,2]),import.meta.url),Ke=ke();await Ke.hydrate(),ie=Ke.providerSelection}catch(ke){console.warn("[chat] Failed to load provider selection for new conversation",ke)}const me=ie||{providerId:Ip,modelKey:Xp},ue={id:A,title:"New Conversation",messages:[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),cwd:n.value||process.cwd?.()||"",source:Q?.featureId?"cascade":"user",featureId:Q?.featureId,providerId:me.providerId,providerModelKey:me.modelKey};if(D?.success&&D.worktreePath&&D.branch&&(ue.worktreePath=D.worktreePath,ue.worktreeBranch=D.branch,ue.cwd=D.worktreePath,ue.hasWorktree=!0,D.baseBranch&&(ue.baseBranch=D.baseBranch)),s.value.unshift(ue),o.value=A,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:A}}).catch(ke=>{console.error("Failed to save active conversation:",ke)}),!Q?.featureId)try{const ke=await $fetch("/api/chat/worktree",{method:"POST",body:{conversationId:A,baseBranch:Q?.baseBranch}});if(ke.success&&ke.worktreePath&&ke.branch){const Ke=s.value.find(it=>it.id===A);Ke&&(Ke.worktreePath=ke.worktreePath,Ke.worktreeBranch=ke.branch,Ke.cwd=ke.worktreePath,Ke.hasWorktree=!0,ke.baseBranch&&(Ke.baseBranch=ke.baseBranch))}}catch(ke){console.warn("[chat] Failed to create worktree for conversation",A,ke)}return Vt(A,!0),A}function Qs(Q){const Z=s.value.find(A=>A.id===Q);Z&&(o.value=Q,r.value=!0,Z.cwd&&(n.value=Z.cwd),!Z.featureId&&Z.worktreeBranch&&ln(Q),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:Q,isPanelOpen:!0}}).catch(A=>{console.error("Failed to save active conversation:",A)}))}async function Ps(Q){const Z=s.value.findIndex(ie=>ie.id===Q);if(Z===-1)return;const A=s.value[Z];if(g.value===Q&&(g.value=null),A.hasWorktree&&A.worktreePath&&A.worktreeBranch)try{await $fetch("/api/chat/worktree",{method:"DELETE",body:{worktreePath:A.worktreePath,branch:A.worktreeBranch}})}catch(ie){console.warn("[chat] Failed to clean up worktree for conversation",Q,ie)}s.value.splice(Z,1),c.delete(Q);const D=f.get(Q);D&&(clearTimeout(D),f.delete(Q)),o.value===Q&&(o.value=null,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:null}}).catch(ie=>{console.error("Failed to clear active conversation:",ie)})),It()}async function Ts(Q,Z,A){const D=s.value.find(me=>me.id===Q);if(!D)return{success:!1,error:"Conversation not found"};if(!D.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const ie=A||D.baseBranch;try{const me=await $fetch("/api/chat/finalize",{method:"POST",body:{conversationId:Q,commitMessage:Z,baseBranch:ie,worktreePath:D.worktreePath,worktreeBranch:D.worktreeBranch,previewBranch:D.previewBranch}});return me.success?(g.value===Q&&(g.value=null),D.worktreePath=void 0,D.worktreeBranch=void 0,D.hasWorktree=!1,D.baseBranch=void 0,D.previewBranch=void 0,D.finalized=!0,D.updatedAt=new Date().toISOString(),It()):me.rebaseInProgress&&await ar(Q,D.worktreePath,ie||"main",Z),me}catch(me){return{success:!1,error:me instanceof Error?me.message:String(me)}}}async function zr(Q,Z){const A=s.value.find(ie=>ie.id===Q);if(!A)return{success:!1,error:"Conversation not found"};if(!A.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const D=Z||A.baseBranch;try{const ie=await $fetch("/api/chat/rebase",{method:"POST",body:{conversationId:Q,baseBranch:D,worktreePath:A.worktreePath}});return ie.rebaseInProgress?await ar(Q,A.worktreePath,D||"main","","sync"):ie.success&&(await B(A),A.baseBranch=D,It()),ie}catch(ie){return{success:!1,error:ie instanceof Error?ie.message:String(ie)}}}async function ar(Q,Z,A,D,ie="finalize"){O.value={conversationId:Q,worktreePath:Z,baseBranch:A,commitMessage:D,files:[],resolvedFiles:new Set,loading:!0,error:null,mode:ie,chatMessages:[],userGuidance:"",lifecycleState:"detected"};try{const me=await $fetch("/api/rebase/conflicts",{params:{worktreePath:Z}});O.value&&(O.value.files=me.files,O.value.loading=!1,wt("system",`Detected ${me.files.length} conflicted file${me.files.length===1?"":"s"}. Enter optional guidance below and click "Resolve Conflicts Automatically" to start.`,"info"))}catch(me){O.value&&(O.value.error=me instanceof Error?me.message:String(me),O.value.loading=!1)}}function wt(Q,Z,A="info",D){O.value&&O.value.chatMessages.push({id:`conflict-msg-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,role:Q,content:Z,timestamp:Date.now(),type:A,fileRef:D})}async function Ms(Q,Z){if(!O.value)return!1;try{const A=await $fetch("/api/rebase/resolve",{method:"PUT",body:{worktreePath:O.value.worktreePath,filePath:Q,content:Z}});return A.success&&O.value&&O.value.resolvedFiles.add(Q),A.success}catch{return!1}}async function ts(){if(!O.value)return{success:!1,error:"No conflict resolution in progress"};const{conversationId:Q,commitMessage:Z,baseBranch:A,mode:D,worktreePath:ie}=O.value,me=D==="sync"?"/api/rebase/continue-sync":"/api/rebase/continue";try{const ue=s.value.find(Ke=>Ke.id===Q),ke=await $fetch(me,{method:"POST",body:{conversationId:Q,commitMessage:Z,baseBranch:A,worktreePath:ie,worktreeBranch:ue?.worktreeBranch,previewBranch:ue?.previewBranch}});if(ke.success){if(D==="finalize"){g.value===Q&&(g.value=null);const Ke=s.value.find(it=>it.id===Q);Ke&&(Ke.worktreePath=void 0,Ke.worktreeBranch=void 0,Ke.hasWorktree=!1,Ke.baseBranch=void 0,Ke.previewBranch=void 0,Ke.finalized=!0,Ke.updatedAt=new Date().toISOString(),It())}else if(D==="sync"){const Ke=s.value.find(it=>it.id===Q);Ke&&(await B(Ke),Ke.baseBranch=A,Ke.updatedAt=new Date().toISOString(),It())}O.value=null}else ke.rebaseInProgress&&await ar(Q,ie,A,Z,D);return ke}catch(ue){return{success:!1,error:ue instanceof Error?ue.message:String(ue)}}}async function ki(){if(!O.value)return!1;try{const Q=await $fetch("/api/rebase/abort",{method:"POST",body:{worktreePath:O.value.worktreePath}});return O.value=null,Q.success}catch{return O.value=null,!1}}async function rs(Q){if(!O.value)return!1;const Z=O.value.files.find(A=>A.path===Q);if(!Z)return!1;try{const A=await $fetch("/api/rebase/ai-resolve",{method:"POST",body:{worktreePath:O.value.worktreePath,filePath:Q,conflictContent:Z.content,userGuidance:O.value.userGuidance||void 0}});if(A.success&&A.resolvedContent!==void 0){Z.content=A.resolvedContent;const D=await Ms(Q,A.resolvedContent);return D?wt("assistant",`Resolved: ${Q}`,"success",Q):wt("assistant",`Failed to write resolved content for ${Q}`,"error",Q),D}return wt("assistant",`Failed to resolve ${Q}: ${A.error||"Unknown error"}`,"error",Q),!1}catch(A){const D=A instanceof Error?A.message:String(A);return wt("assistant",`Error resolving ${Q}: ${D}`,"error",Q),!1}}async function Nr(){if(!O.value)return;const Q=O.value.files.filter(ue=>!O.value.resolvedFiles.has(ue.path));if(Q.length===0){wt("system","All files are already resolved.","info");return}x=new AbortController;const Z=x.signal;O.value.lifecycleState="resolving";const A=O.value.userGuidance;A&&wt("user",A),wt("system",`Starting AI resolution for ${Q.length} file${Q.length===1?"":"s"} (parallel)...`,"info");let D=0,ie=0;const me=3;for(let ue=0;ue<Q.length&&!(!O.value||Z.aborted);ue+=me){const ke=Q.slice(ue,ue+me);for(const it of ke)wt("assistant",`Resolving: ${it.path}...`,"progress",it.path);const Ke=await Promise.all(ke.map(it=>rs(it.path)));for(const it of Ke)it?D++:ie++}x=null,O.value&&(Z.aborted||(ie===0?(O.value.lifecycleState="resolved",wt("system",`All ${D} file${D===1?"":"s"} resolved successfully. Click "Continue Rebase" to proceed.`,"summary")):(O.value.lifecycleState="failed",wt("system",`Resolution complete: ${D} succeeded, ${ie} failed. You can retry or abort.`,"summary"))))}async function _r(){if(!O.value)return;x&&(x.abort(),x=null);const{conversationId:Q,worktreePath:Z,baseBranch:A,commitMessage:D,mode:ie}=O.value;wt("system","Resolution cancelled. Resetting conflict state...","info");try{await $fetch("/api/rebase/abort",{method:"POST",body:{worktreePath:Z}})}catch{}O.value=null,wt("system","Conflict resolution aborted and reset.","info")}async function As(Q){const Z=s.value.find(A=>A.id===Q);if(!Z)return{success:!1,error:"Conversation not found"};if(!Z.hasWorktree||!Z.worktreePath||!Z.baseBranch)return{success:!1,error:"No worktree to preview"};try{const A=await $fetch("/api/chat/preview",{method:"POST",body:{conversationId:Q,worktreePath:Z.worktreePath,baseBranch:Z.baseBranch}});return A.success&&A.previewBranch&&(Z.previewBranch=A.previewBranch,g.value=Q,Z.updatedAt=new Date().toISOString(),It()),{success:A.success,error:A.error}}catch(A){return{success:!1,error:A instanceof Error?A.message:String(A)}}}async function ns(Q){const Z=s.value.find(A=>A.id===Q);if(!Z)return{success:!1,error:"Conversation not found"};if(!Z.previewBranch||!Z.baseBranch)return g.value=null,{success:!1,error:"No active preview"};try{const A=await $fetch("/api/chat/preview",{method:"DELETE",body:{previewBranch:Z.previewBranch,baseBranch:Z.baseBranch}});return A.success&&(Z.previewBranch=void 0,g.value=null,Z.updatedAt=new Date().toISOString(),It()),{success:A.success,error:A.error}}catch(A){return{success:!1,error:A instanceof Error?A.message:String(A)}}}async function wi(Q){if(g.value===Q)return await ns(Q);if(g.value){const Z=await ns(g.value);if(!Z.success)return{success:!1,error:`Failed to end previous preview: ${Z.error}`}}return await As(Q)}function Si(Q){const Z=Q.trim();if(!Z)return null;const A=s.value.filter(D=>D.featureId===Z?!0:D.worktreeBranch?.trim()===Z);return A.length===0?null:A.sort((D,ie)=>new Date(ie.updatedAt).getTime()-new Date(D.updatedAt).getTime())[0]||null}function ss(Q,Z){const A=s.value.find(D=>D.id===Q);A&&(A.title=Z.trim(),A.updatedAt=new Date().toISOString(),An(),It())}function $i(Q){const Z=o.value;if(!Z)return;const A=s.value.find(ie=>ie.id===Z);if(!A||A.title!=="New Conversation")return;const D=A.messages.find(ie=>ie.role==="user");D&&(D.content.trim().length>0?A.title=D1(D.content):D.attachments&&D.attachments.length>0&&(A.title=D.attachments.length===1?"[Image] New Conversation":`[${D.attachments.length} Images] New Conversation`))}function fn(){const Q=s.value.length;return{atLimit:Q>=Xh,nearLimit:Q>=Lh,count:Q}}async function _e(Q,Z){o.value||await Vr();const A=Qn(Q,void 0,Z);return $i(),es(!0),A}function F(Q,Z,A){const D=A??o.value;Pn(Q,Z,D??void 0),D&&Vt(D,!1)}function xt(Q,Z){const A=Z??o.value;Rt(Q,{status:"complete"},A??void 0),A&&Vt(A,!0)}return{messages:P,session:R,isPanelOpen:r,panelWidth:Re(e),permissionMode:Re(t),pendingPermission:V,pendingPlanApproval:L,cwd:Re(n),lastError:ae,debugEvents:ce,debugStreamEnabled:Re(u),providerSessionId:q,conversations:Re(s),archivedConversations:Re(i),activeConversationId:Re(o),conversationViewMode:Re(a),conflictState:Re(O),previewingConversationId:Re(g),isStreaming:Oe,hasMessages:X,lastMessage:E,isActiveConversationStreaming:j,hasConversations:W,hasArchivedConversations:I,activeConversation:$,conversationCount:z,isNearStorageLimit:xe,sortedConversations:J,sortedArchivedConversations:fe,previewingConversation:S,streamingConversations:Re(l),initialize:Ne,togglePanel:le,openPanel:he,closePanel:Y,setPanelWidth:Ie,setPermissionMode:Ce,setPendingPermission:He,clearPendingPermission:Ue,setPendingPlanApproval:pe,clearPendingPlanApproval:Pe,setCwd:ze,setProviderSessionId:_t,clearProviderSession:Xr,getProviderSessionId:xr,updateWorktreeBranch:Ht,setConversationProviderSelection:or,startConversationStreaming:Gn,endConversationStreaming:Ir,isConversationStreaming:U,addMessage:cn,addUserMessage:Qn,addAssistantMessage:Hn,updateMessage:Rt,resetMessageForReplay:un,appendToMessage:Pn,addToolToMessage:Kn,updateToolInMessage:Tn,initContentBlocks:G,appendContentBlock:de,appendContentBlockWithSave:Be,updateBlockById:ne,updateBlockWithSave:ve,findToolUseBlock:qe,batchSetMessageBlocks:Ge,syncContentFromBlocks:Kt,setSessionStatus:ot,startSession:Mn,endSession:yr,setSessionError:Jn,setDebugStreamEnabled:gi,pushDebugEvent:mi,clearDebugEvents:Oi,clearMessages:vi,clearError:bi,loadConversations:xi,refreshServerConversations:yi,saveAllConversations:It,saveCurrentConversation:es,saveConversation:Vt,createConversation:Vr,selectConversation:Qs,deleteConversation:Ps,archiveConversation:K,restoreArchivedConversation:oe,deleteArchivedConversation:ye,setConversationViewMode:M,findConversationByFeature:Si,syncConversationFeatureFromBranch:ln,renameConversation:ss,checkStorageLimits:fn,finalizeConversation:Ts,rebaseConversation:zr,resolveConflictFile:Ms,continueRebase:ts,abortRebase:ki,aiResolveConflictFile:rs,aiResolveAllConflicts:Nr,addConflictChatMessage:wt,cancelConflictResolution:_r,previewConversation:As,unpreviewConversation:ns,togglePreview:wi,isConversationPreviewing:w,addUserMessageWithConversation:_e,appendToMessageWithSave:F,completeMessageWithSave:xt}});function Ey(r={}){const e=ul(),t=300,n=5e3,s=250;let i=null,o=null,a=null,l=null,c=null,u=!1,h=!1;const f=T(!1),p=T(!1);let g=r;function O(X){g=X}async function x(){const X=g.getScrollPosition?.()??0,E=await e.checkAndRefresh();return E&&g.setScrollPosition&&(await Ut(),g.setScrollPosition(X)),E}function b(){return f.value||!!e.activeContextMenu||!!e.activeDialog}async function k(){if(b()){p.value=!0;return}P()}async function $(){if(u){h=!0;return}u=!0;try{await x()}finally{u=!1,h&&(h=!1,P())}}function P(){o&&clearTimeout(o),o=setTimeout(()=>{o=null,$()},s)}function R(X){if(typeof window>"u")return;if(a&&a.readyState===WebSocket.OPEN){a.send(JSON.stringify({type:"watch",workingDirectory:X}));return}l&&(clearTimeout(l),l=null);const U=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/git-watcher-ws`;a=new WebSocket(U),a.onopen=()=>{a.send(JSON.stringify({type:"watch",workingDirectory:X}))},a.onmessage=j=>{try{JSON.parse(j.data).type==="git_changed"&&k()}catch{}},a.onclose=()=>{a=null,e.isPollingActive&&c&&(l=setTimeout(()=>{c&&R(c)},n))},a.onerror=()=>{}}function V(){l&&(clearTimeout(l),l=null),a&&(a.close(),a=null)}function L(X){X&&(c=X),!e.isPollingActive&&(e.startPolling(),c&&R(c))}function ae(){V(),e.stopPolling()}function ce(){f.value=!0,i&&(clearTimeout(i),i=null)}function Oe(){i&&clearTimeout(i),i=setTimeout(async()=>{f.value=!1,p.value&&(p.value=!1,P())},t)}function q(){ae(),i&&(clearTimeout(i),i=null),o&&(clearTimeout(o),o=null),u=!1,h=!1,c=null}return We(()=>[e.activeContextMenu,e.activeDialog],()=>{!e.activeContextMenu&&!e.activeDialog&&p.value&&!f.value&&(p.value=!1,P())}),{isUserInteracting:Re(f),isDeferredRefresh:Re(p),startPolling:L,stopPolling:ae,startInteraction:ce,endInteraction:Oe,cleanup:q,setScrollCallbacks:O}}function Dy(r){function e(s){if((s.ctrlKey||s.metaKey)&&s.key==="h"){s.preventDefault(),r.onScrollToHead();return}if(s.key==="Escape"){s.preventDefault(),r.onEscape();return}}function t(){document.addEventListener("keydown",e)}function n(){document.removeEventListener("keydown",e)}return{start:t,stop:n}}function Ly(r){const e=T({visible:!1,branchName:"",loading:!1,error:null});async function t(){e.value.loading=!0,e.value.error=null;const J=await r.checkoutBranch(e.value.branchName);e.value.loading=!1,J.success?e.value.visible=!1:e.value.error=J.error||"Unknown error"}const n=T({visible:!1,fromCommit:"",loading:!1,error:null});async function s(J){n.value.loading=!0,n.value.error=null;const fe=await r.createBranch(J.name,n.value.fromCommit);n.value.loading=!1,fe.success?(J.checkout&&await r.checkoutBranch(J.name),n.value.visible=!1):n.value.error=fe.error||"Unknown error"}const i=T({visible:!1,branchName:"",isLocal:!0,force:!1,loading:!1,error:null});async function o(J){i.value.loading=!0,i.value.error=null;const{branchName:fe,isLocal:S}=i.value,w=J?.force??i.value.force,M=S?await r.deleteLocalBranch(fe,w):await r.deleteRemoteBranch(fe);i.value.loading=!1,M.success?i.value.visible=!1:i.value.error=M.error||"Unknown error"}const a=T({visible:!1,branchName:"",newName:"",loading:!1,error:null});async function l(){if(!a.value.newName.trim()){a.value.error="Branch name is required";return}a.value.loading=!0,a.value.error=null;const J=await r.renameBranch(a.value.branchName,a.value.newName.trim());a.value.loading=!1,J.success?a.value.visible=!1:a.value.error=J.error||"Unknown error"}const c=T({visible:!1,branchName:"",loading:!1,error:null});async function u(J){c.value.loading=!0,c.value.error=null;const fe=await r.mergeBranch(c.value.branchName,J);c.value.loading=!1,fe.success?c.value.visible=!1:c.value.error=fe.error||"Unknown error"}const h=T({visible:!1,branchName:"",loading:!1,error:null});async function f(){h.value.loading=!0,h.value.error=null;const J=await r.rebaseBranch(h.value.branchName);h.value.loading=!1,J.success?h.value.visible=!1:h.value.error=J.error||"Unknown error"}const p=T({visible:!1,branchName:"",loading:!1,error:null});async function g(J){p.value.loading=!0,p.value.error=null;const fe=await r.pushBranch(p.value.branchName,J.remote,J.force,J.forceWithLease);p.value.loading=!1,fe.success?p.value.visible=!1:p.value.error=fe.error||"Unknown error"}const O=T({visible:!1,branchName:"",loading:!1,error:null});async function x(J){O.value.loading=!0,O.value.error=null;const fe=await r.pullBranch(O.value.branchName,J.remote,J.noFastForward,J.squash);O.value.loading=!1,fe.success?O.value.visible=!1:O.value.error=fe.error||"Unknown error"}const b=T({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function k(J){b.value.loading=!0,b.value.error=null;const fe=await r.cherryPickCommit(b.value.commitHash,J.recordOrigin,J.noCommit);b.value.loading=!1,fe.success?b.value.visible=!1:b.value.error=fe.error||"Unknown error"}const $=T({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function P(J){$.value.loading=!0,$.value.error=null;const fe=await r.resetToCommit($.value.commitHash,J.mode);$.value.loading=!1,fe.success?$.value.visible=!1:$.value.error=fe.error||"Unknown error"}const R=T({visible:!1,commitHash:"",loading:!1,error:null});async function V(J){R.value.loading=!0,R.value.error=null;const fe=await r.createTag(J.name,R.value.commitHash,J.annotated,J.message,J.pushToRemote);R.value.loading=!1,fe.success?R.value.visible=!1:R.value.error=fe.error||"Unknown error"}const L=T({visible:!1,tagName:"",loading:!1,error:null});async function ae(J){L.value.loading=!0,L.value.error=null;const fe=await r.deleteTag(L.value.tagName,J.deleteFromRemote?J.remote||"origin":void 0);L.value.loading=!1,fe.success?L.value.visible=!1:L.value.error=fe.error||"Unknown error"}const ce=T({visible:!1,tagName:"",loading:!1,tagDetail:null}),Oe=T({visible:!1,loading:!1,error:null});async function q(J){Oe.value.loading=!0,Oe.value.error=null;const fe=await r.stashChanges(J.message,J.includeUntracked);Oe.value.loading=!1,fe.success?Oe.value.visible=!1:Oe.value.error=fe.error||"Unknown error"}const X=T({visible:!1,stashIndex:0,loading:!1,error:null}),E=T("");async function U(J){X.value.loading=!0,X.value.error=null;const fe=await r.stashBranch(X.value.stashIndex,J);X.value.loading=!1,fe.success?X.value.visible=!1:X.value.error=fe.error||"Unknown error"}const j=T({visible:!1,loading:!1,error:null});async function W(J){j.value.loading=!0,j.value.error=null;const fe=await r.resetWorking(J.mode);j.value.loading=!1,fe.success?j.value.visible=!1:j.value.error=fe.error||"Unknown error"}const I=T({visible:!1,loading:!1,error:null});async function z(){I.value.loading=!0,I.value.error=null;const J=await r.cleanUntracked();I.value.loading=!1,J.success?I.value.visible=!1:I.value.error=J.error||"Unknown error"}const xe=ee(()=>e.value.visible||n.value.visible||i.value.visible||a.value.visible||c.value.visible||h.value.visible||p.value.visible||O.value.visible||b.value.visible||$.value.visible||R.value.visible||L.value.visible||ce.value.visible||Oe.value.visible||X.value.visible||j.value.visible||I.value.visible);return{checkoutDialog:e,confirmCheckout:t,createBranchDialog:n,confirmCreateBranch:s,deleteBranchDialog:i,confirmDeleteBranch:o,renameDialog:a,confirmRenameBranch:l,mergeDialog:c,confirmMerge:u,rebaseDialog:h,confirmRebase:f,pushDialog:p,confirmPush:g,pullDialog:O,confirmPull:x,cherryPickDialog:b,confirmCherryPick:k,resetDialog:$,confirmReset:P,tagCreateDialog:R,confirmTagCreate:V,tagDeleteDialog:L,confirmTagDelete:ae,tagDetailDialog:ce,stashDialog:Oe,confirmStash:q,stashBranchDialog:X,stashBranchInput:E,confirmStashBranch:U,resetWorkingDialog:j,confirmResetWorking:W,cleanUntrackedDialog:I,confirmCleanUntracked:z,isAnyDialogOpen:xe}}function Xy(r,e){const t=T({visible:!1,x:0,y:0});function n(Y,Ae){t.value={visible:!0,x:Y,y:Ae},setTimeout(()=>{t.value.visible=!1},1500)}const s=T({visible:!1,branch:"",x:0,y:0,isCurrentBranch:!1,isLocal:!0,commitHash:""});function i(Y){s.value={visible:!0,...Y},r.setActiveContextMenu({type:"branch",props:Y,position:{x:Y.x,y:Y.y}})}function o(){s.value.visible=!1,r.clearActiveContextMenu()}function a(){o(),e.checkoutDialog.value={visible:!0,branchName:s.value.branch,loading:!1,error:null}}function l(){const Y=s.value.branch;o(),e.renameDialog.value={visible:!0,branchName:Y,newName:Y,loading:!1,error:null}}function c(){const{branch:Y,isLocal:Ae}=s.value;o(),e.deleteBranchDialog.value={visible:!0,branchName:Y,isLocal:Ae,force:!1,loading:!1,error:null}}function u(){const Y=s.value.branch;o(),e.mergeDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function h(){const Y=s.value.branch;o(),e.rebaseDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function f(){const Y=s.value.branch;o(),e.pushDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}function p(){const Y=s.value.branch;o(),e.pullDialog.value={visible:!0,branchName:Y,loading:!1,error:null}}async function g(){const Y=s.value.branch;o(),await r.fetchBranch(Y)}async function O(){const Y=s.value.branch;o(),await r.copyToClipboard(Y),n(s.value.x,s.value.y)}function x(){o(),e.createBranchDialog.value={visible:!0,fromCommit:s.value.commitHash,loading:!1,error:null}}const b=T({visible:!1,commit:null,x:0,y:0});function k(Y){b.value={visible:!0,commit:Y.commit,x:Y.x,y:Y.y},r.setActiveContextMenu({type:"commit",props:Y,position:{x:Y.x,y:Y.y}})}function $(){b.value.visible=!1,r.clearActiveContextMenu()}function P(Y){const Ae=b.value.commit;if(!Ae)return!1;$();const Ie=Y(Ae);return Ie&&typeof Ie.then=="function"?Ie.then(()=>!0):!0}function R(){P(Y=>{e.tagCreateDialog.value={visible:!0,commitHash:Y.hash,loading:!1,error:null}})}function V(){P(Y=>{e.createBranchDialog.value={visible:!0,fromCommit:Y.hash,loading:!1,error:null}})}function L(){P(Y=>{e.checkoutDialog.value={visible:!0,branchName:Y.hash,loading:!1,error:null}})}function ae(){P(Y=>{e.cherryPickDialog.value={visible:!0,commitHash:Y.hash,commitMessage:Y.message,loading:!1,error:null}})}async function ce(){await P(Y=>r.revertCommit(Y.hash))}function Oe(){P(Y=>{e.mergeDialog.value={visible:!0,branchName:Y.shortHash,loading:!1,error:null}})}function q(){P(Y=>{e.resetDialog.value={visible:!0,commitHash:Y.hash,commitMessage:Y.message,loading:!1,error:null}})}async function X(){const{x:Y,y:Ae}=b.value;await P(ze=>r.copyToClipboard(ze.hash))&&n(Y,Ae)}async function E(){await P(Y=>r.copyCommitSubject(Y))}const U=T({visible:!1,tag:"",x:0,y:0,commitHash:""});function j(Y){U.value={visible:!0,...Y},r.setActiveContextMenu({type:"tag",props:Y,position:{x:Y.x,y:Y.y}})}function W(){U.value.visible=!1,r.clearActiveContextMenu()}async function I(){const Y=U.value.tag;W(),e.tagDetailDialog.value={visible:!0,tagName:Y,loading:!0,tagDetail:null};const Ae=await r.getTagDetail(Y);e.tagDetailDialog.value.loading=!1,Ae.success&&Ae.data&&(e.tagDetailDialog.value.tagDetail=Ae.data)}function z(){const Y=U.value.tag;W(),e.tagDeleteDialog.value={visible:!0,tagName:Y,loading:!1,error:null}}async function xe(){const Y=U.value.tag;W(),await r.pushTag(Y)}async function J(){const Y=U.value.tag;W(),await r.copyToClipboard(Y),n(U.value.x,U.value.y)}const fe=T({visible:!1,x:0,y:0});function S(Y){fe.value={visible:!0,...Y},r.setActiveContextMenu({type:"uncommitted",props:Y,position:{x:Y.x,y:Y.y}})}function w(){fe.value.visible=!1,r.clearActiveContextMenu()}function M(){w(),e.stashDialog.value={visible:!0,loading:!1,error:null}}function B(){w(),e.resetWorkingDialog.value={visible:!0,loading:!1,error:null}}function K(){w(),e.cleanUntrackedDialog.value={visible:!0,loading:!1,error:null}}const oe=T({visible:!1,stash:null,x:0,y:0});function ye(Y){oe.value={visible:!0,stash:Y.stash,x:Y.x,y:Y.y},r.setActiveContextMenu({type:"stash",props:Y,position:{x:Y.x,y:Y.y}})}function Ne(){oe.value.visible=!1,r.clearActiveContextMenu()}function Ce(Y){const Ae=oe.value.stash;if(!Ae)return!1;Ne();const Ie=Y(Ae);return Ie&&typeof Ie.then=="function"?Ie.then(()=>!0):!0}async function He(){await Ce(Y=>r.applyStash(Y.index))}async function Ue(){await Ce(Y=>r.popStash(Y.index))}async function pe(){await Ce(Y=>r.dropStash(Y.index))}function Pe(){Ce(Y=>{e.stashBranchDialog.value={visible:!0,stashIndex:Y.index,loading:!1,error:null}})}async function le(){const{x:Y,y:Ae}=oe.value;await Ce(ze=>r.copyToClipboard(`stash@{${ze.index}}`))&&n(Y,Ae)}async function he(){const{x:Y,y:Ae}=oe.value;await Ce(ze=>r.copyToClipboard(ze.hash))&&n(Y,Ae)}return{copyFeedback:t,showCopyFeedback:n,branchMenu:s,handleBranchContextMenu:i,closeBranchMenu:o,handleBranchCheckout:a,handleBranchRename:l,handleBranchDelete:c,handleBranchMerge:u,handleBranchRebase:h,handleBranchPush:f,handleBranchPull:p,handleBranchFetch:g,handleBranchCopyName:O,handleBranchCreateBranch:x,commitMenu:b,handleCommitContextMenu:k,closeCommitMenu:$,handleCommitAddTag:R,handleCommitCreateBranch:V,handleCommitCheckout:L,handleCommitCherryPick:ae,handleCommitRevert:ce,handleCommitMergeInto:Oe,handleCommitReset:q,handleCommitCopyHash:X,handleCommitCopySubject:E,tagMenu:U,handleTagContextMenu:j,closeTagMenu:W,handleTagViewDetails:I,handleTagDelete:z,handleTagPush:xe,handleTagCopyName:J,uncommittedMenu:fe,handleUncommittedContextMenu:S,closeUncommittedMenu:w,handleUncommittedStash:M,handleUncommittedReset:B,handleUncommittedClean:K,stashMenu:oe,handleStashContextMenu:ye,closeStashMenu:Ne,handleStashApply:He,handleStashPop:Ue,handleStashDrop:pe,handleStashCreateBranch:Pe,handleStashCopyName:le,handleStashCopyHash:he}}const Iy={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Vy={class:"text-sm font-mono text-retro-cyan"},zy={class:"text-xs font-mono text-retro-text mt-1 truncate"},Ny={class:"space-y-3"},Wy={class:"flex items-start gap-2 cursor-pointer group"},qy={class:"flex items-start gap-2 cursor-pointer group"},jy=Ve({__name:"CherryPickDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=T(!1),s=T(!1);function i(){t("confirm",{recordOrigin:n.value,noCommit:s.value})}function o(){n.value=!1,s.value=!1,t("close")}return(a,l)=>(v(),be(Gt,{title:"Cherry-Pick Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Cherry-Pick",onClose:o,onConfirm:i},{default:ht(()=>[d("div",Iy,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Commit",-1)),d("div",Vy,_(r.commitHash.slice(0,7)),1),d("div",zy,_(r.commitMessage.split(`
10
- `)[0]),1)]),d("div",Ny,[d("label",Wy,[Je(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>nt(n)?n.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[Or,m(n)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Record origin (-x) "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"},' Append "(cherry picked from commit ...)" to the commit message ')],-1))]),d("label",qy,[Je(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>nt(s)?s.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[Or,m(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," No commit "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Apply changes to the working directory without committing ")],-1))])])]),_:1},8,["visible","loading","error"]))}}),Yy={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Fy={class:"text-sm font-mono text-retro-cyan"},Uy={class:"mb-4"},Gy={class:"flex items-start gap-2 cursor-pointer group"},Hy=Ve({__name:"CreateBranchDialog",props:{visible:{type:Boolean},fromCommit:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=T(""),s=T(!0),i=ee(()=>n.value.trim().length>0);function o(){i.value&&t("confirm",{name:n.value.trim(),checkout:s.value})}function a(){n.value="",s.value=!0,t("close")}return(l,c)=>(v(),be(Gt,{title:"Create Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Branch",onClose:a,onConfirm:o},{default:ht(()=>[d("div",Yy,[c[2]||(c[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"From",-1)),d("div",Fy,_(r.fromCommit.slice(0,7)),1)]),d("div",Uy,[c[3]||(c[3]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Branch name",-1)),Je(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>nt(n)?n.value=u:null),type:"text",placeholder:"feature/my-branch",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Lt,m(n)]])]),d("label",Gy,[Je(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>nt(s)?s.value=u:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[Or,m(s)]]),c[4]||(c[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Switch to new branch "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Checkout the branch after creating it ")],-1))])]),_:1},8,["visible","loading","error"]))}}),Ky=Ve({__name:"CleanUntrackedDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),be(Gt,{title:"Clean Untracked Files",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Clean","confirm-danger":"",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:ht(()=>[...s[2]||(s[2]=[d("div",{class:"space-y-3"},[d("p",{class:"text-retro-text text-sm font-mono"}," Remove all untracked files and directories from the working tree. "),d("p",{class:"text-retro-muted text-xs font-mono"},[Xe(" This runs "),d("code",null,"git clean -fd"),Xe(" and cannot be undone. ")])],-1)])]),_:1},8,["visible","loading","error"]))}}),Jy={class:"text-retro-text text-sm font-mono mb-2"},ek={class:"text-retro-cyan"},tk={class:"space-y-3 mt-4"},rk={class:"flex items-center gap-2 cursor-pointer"},nk=Ve({__name:"DeleteBranchDialog",props:{visible:{type:Boolean},branchName:{},isLocal:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T(!1);function i(){n("confirm",{force:s.value})}return We(()=>t.visible,o=>{o&&(s.value=!1)}),(o,a)=>(v(),be(Gt,{title:"Delete Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:a[1]||(a[1]=l=>n("close")),onConfirm:i},{default:ht(()=>[a[4]||(a[4]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",Jy,[Xe(" Delete "+_(r.isLocal?"local":"remote")+" branch ",1),d("span",ek,_(r.branchName),1),a[2]||(a[2]=Xe("? ",-1))]),d("div",tk,[d("label",rk,[Je(d("input",{"onUpdate:modelValue":a[0]||(a[0]=l=>nt(s)?s.value=l:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(s)]]),a[3]||(a[3]=d("span",{class:"text-retro-muted text-sm"},"Force delete (even if not fully merged)",-1))])])]),_:1},8,["visible","loading","error"]))}}),sk={class:"text-retro-text text-sm font-mono mb-4"},ik={class:"text-retro-cyan"},ok={class:"space-y-3"},ak={class:"flex items-center gap-2 cursor-pointer"},lk={class:"flex items-center gap-2 cursor-pointer"},ck={class:"flex items-center gap-2 cursor-pointer"},uk=Ve({__name:"MergeDialog",props:{visible:{type:Boolean},branchName:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T(!1),i=T(!1),o=T(!1);function a(){n("confirm",{noCommit:s.value,noFastForward:i.value,squash:o.value})}return We(()=>t.visible,l=>{l&&(s.value=!1,i.value=!1,o.value=!1)}),(l,c)=>(v(),be(Gt,{title:"Merge Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Merge",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:ht(()=>[d("p",sk,[c[4]||(c[4]=Xe(" Merge ",-1)),d("span",ik,_(r.branchName),1),c[5]||(c[5]=Xe(" into current branch ",-1))]),d("div",ok,[d("label",ak,[Je(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>nt(s)?s.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(s)]]),c[6]||(c[6]=d("span",{class:"text-retro-muted text-sm"},"No commit (stage changes only)",-1))]),d("label",lk,[Je(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>nt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",ck,[Je(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>nt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),hk={class:"text-retro-text text-sm font-mono mb-4"},dk={class:"text-retro-cyan"},fk={class:"space-y-3"},pk=["value"],mk={class:"flex items-center gap-2 cursor-pointer"},gk={class:"flex items-center gap-2 cursor-pointer"},Ok=Ve({__name:"PullDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T("origin"),i=T(!1),o=T(!1);function a(){n("confirm",{remote:s.value,noFastForward:i.value,squash:o.value})}return We(()=>t.visible,l=>{l&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(l,c)=>(v(),be(Gt,{title:"Pull Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Pull",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:ht(()=>[d("p",hk,[c[4]||(c[4]=Xe(" Pull ",-1)),d("span",dk,_(r.branchName),1),c[5]||(c[5]=Xe(" from remote ",-1))]),d("div",fk,[d("div",null,[c[6]||(c[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),Je(d("select",{"onUpdate:modelValue":c[0]||(c[0]=u=>nt(s)?s.value=u:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),y($e,null,Ye(r.remotes,u=>(v(),y("option",{key:u,value:u},_(u),9,pk))),128))],512),[[Cs,m(s)]])]),d("label",mk,[Je(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>nt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",gk,[Je(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>nt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),vk={class:"text-retro-text text-sm font-mono mb-4"},bk={class:"text-retro-cyan"},xk={class:"space-y-3"},yk=["value"],kk={class:"flex items-center gap-2 cursor-pointer"},wk=["checked"],Sk={class:"flex items-center gap-2 cursor-pointer"},$k=["checked"],Ck={key:0,class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},Qk=Ve({__name:"PushDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T("origin"),i=T(!1),o=T(!1);function a(u){i.value=u,u&&(o.value=!1)}function l(u){o.value=u,u&&(i.value=!1)}function c(){n("confirm",{remote:s.value,force:i.value,forceWithLease:o.value})}return We(()=>t.visible,u=>{u&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(u,h)=>(v(),be(Gt,{title:"Push Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Push",onClose:h[3]||(h[3]=f=>n("close")),onConfirm:c},{default:ht(()=>[d("p",vk,[h[4]||(h[4]=Xe(" Push ",-1)),d("span",bk,_(r.branchName),1),h[5]||(h[5]=Xe(" to remote ",-1))]),d("div",xk,[d("div",null,[h[6]||(h[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),Je(d("select",{"onUpdate:modelValue":h[0]||(h[0]=f=>nt(s)?s.value=f:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),y($e,null,Ye(r.remotes,f=>(v(),y("option",{key:f,value:f},_(f),9,yk))),128))],512),[[Cs,m(s)]])]),d("label",kk,[d("input",{checked:m(i),type:"checkbox",class:"accent-retro-cyan",onChange:h[1]||(h[1]=f=>a(f.target.checked))},null,40,wk),h[7]||(h[7]=d("span",{class:"text-retro-muted text-sm"},"Force push",-1))]),d("label",Sk,[d("input",{checked:m(o),type:"checkbox",class:"accent-retro-cyan",onChange:h[2]||(h[2]=f=>l(f.target.checked))},null,40,$k),h[8]||(h[8]=d("span",{class:"text-retro-muted text-sm"},"Force with lease (safer force push)",-1))]),m(i)||m(o)?(v(),y("div",Ck,_(m(i)?"Force push will overwrite remote history. Use with caution.":"Force with lease will reject the push if the remote has been updated since your last fetch."),1)):H("",!0)])]),_:1},8,["visible","loading","error"]))}}),Pk={class:"text-retro-text text-sm font-mono mb-4"},Tk={class:"text-retro-cyan"},Mk={class:"text-retro-cyan"},Ak={class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},_k={class:"text-retro-cyan"},Rk={class:"text-retro-cyan"},Bk=Ve({__name:"RebaseDialog",props:{visible:{type:Boolean},branchName:{},ontoBranch:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),be(Gt,{title:"Rebase Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Rebase",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:ht(()=>[d("p",Pk,[s[2]||(s[2]=Xe(" Rebase ",-1)),d("span",Tk,_(r.branchName),1),s[3]||(s[3]=Xe(" onto ",-1)),d("span",Mk,_(r.ontoBranch),1)]),d("div",Ak,[s[4]||(s[4]=Xe(" This will rewrite commit history. Commits from ",-1)),d("span",_k,_(r.branchName),1),s[5]||(s[5]=Xe(" will be replayed on top of ",-1)),d("span",Rk,_(r.ontoBranch),1),s[6]||(s[6]=Xe(". ",-1))])]),_:1},8,["visible","loading","error"]))}}),Zk={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Ek={class:"text-sm font-mono text-retro-cyan"},Dk={class:"text-xs font-mono text-retro-text mt-1 truncate"},Lk={class:"space-y-2"},Xk=["value"],Ik={key:0,class:"mt-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},Vk=Ve({__name:"ResetDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=T("mixed"),s=[{value:"soft",label:"Soft",description:"Move HEAD, keep staged changes and working directory"},{value:"mixed",label:"Mixed",description:"Move HEAD, reset staging area, keep working directory"},{value:"hard",label:"Hard",description:"Move HEAD, reset staging area and working directory (DESTRUCTIVE)"}];function i(){t("confirm",{mode:n.value})}function o(){n.value="mixed",t("close")}return(a,l)=>(v(),be(Gt,{title:"Reset to Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":m(n)==="hard",onClose:o,onConfirm:i},{default:ht(()=>[d("div",Zk,[l[1]||(l[1]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Reset to",-1)),d("div",Ek,_(r.commitHash.slice(0,7)),1),d("div",Dk,_(r.commitMessage.split(`
11
- `)[0]),1)]),d("div",Lk,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-2"},"Reset mode",-1)),(v(),y($e,null,Ye(s,c=>d("label",{key:c.value,class:Ze(["flex items-start gap-2 p-2 rounded cursor-pointer group border transition-colors",[m(n)===c.value?"border-retro-cyan bg-retro-cyan/5":"border-transparent hover:bg-retro-panel"]])},[Je(d("input",{"onUpdate:modelValue":l[0]||(l[0]=u=>nt(n)?n.value=u:null),type:"radio",name:"reset-mode",value:c.value,class:"mt-0.5 accent-retro-cyan"},null,8,Xk),[[vc,m(n)]]),d("div",null,[d("span",{class:Ze(["text-sm font-mono transition-colors",[c.value==="hard"?"text-retro-red":"text-retro-text",m(n)===c.value?"text-retro-cyan":""]])},_(c.label),3),d("p",{class:Ze(["text-xs font-mono mt-0.5",c.value==="hard"?"text-retro-red/70":"text-retro-muted"])},_(c.description),3)])],2)),64))]),m(n)==="hard"?(v(),y("div",Ik," Warning: Hard reset will permanently discard all uncommitted changes in your working directory and staging area. This action cannot be undone. ")):H("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),zk={class:"space-y-3"},Nk={class:"flex items-start gap-2 cursor-pointer"},Wk={class:"flex items-start gap-2 cursor-pointer"},qk={key:0,class:"mt-4 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},jk=Ve({__name:"ResetWorkingDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T("mixed"),i=ee(()=>s.value==="hard");function o(){n("confirm",{mode:s.value})}return We(()=>t.visible,a=>{a&&(s.value="mixed")}),(a,l)=>(v(),be(Gt,{title:"Reset Working Directory",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":m(i),onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ht(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Reset the working directory to HEAD. ",-1)),d("div",zk,[d("label",Nk,[Je(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>nt(s)?s.value=c:null),type:"radio",value:"mixed",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[vc,m(s)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Mixed"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area, keep working directory ")],-1))]),d("label",Wk,[Je(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>nt(s)?s.value=c:null),type:"radio",value:"hard",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[vc,m(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Hard"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area AND working directory (DESTRUCTIVE) ")],-1))])]),m(i)?(v(),y("div",qk," WARNING: Hard reset will permanently discard all uncommitted changes. This cannot be undone. ")):H("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),Yk={class:"space-y-4"},Fk={class:"flex items-center gap-2 cursor-pointer"},Uk=Ve({__name:"StashDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T(""),i=T(!1);function o(){n("confirm",{message:s.value.trim()||void 0,includeUntracked:i.value})}return We(()=>t.visible,a=>{a&&(s.value="",i.value=!1)}),(a,l)=>(v(),be(Gt,{title:"Stash Changes",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Stash",onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ht(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Save uncommitted changes to the stash. ",-1)),d("div",Yk,[d("div",null,[l[3]||(l[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message (optional)",-1)),Je(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>nt(s)?s.value=c:null),type:"text",placeholder:"Stash description...",class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted/50 focus:outline-none focus:border-retro-cyan"},null,512),[[Lt,m(s)]])]),d("label",Fk,[Je(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>nt(i)?i.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(i)]]),l[4]||(l[4]=d("span",{class:"text-retro-muted text-sm"},"Include untracked files",-1))])])]),_:1},8,["visible","loading","error"]))}}),Gk={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},Hk={class:"text-sm font-mono text-retro-cyan"},Kk={class:"mb-4"},Jk={class:"mb-3"},ew={class:"flex items-start gap-2 cursor-pointer group"},tw={key:0,class:"mb-4"},rw={class:"space-y-2"},nw={class:"flex items-start gap-2 cursor-pointer group"},sw=["disabled"],iw={key:0,class:"ml-6"},ow=["value"],aw=Ve({__name:"TagCreateDialog",props:{visible:{type:Boolean},commitHash:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=T(""),s=T(!1),i=T(""),o=T(!1),a=T(""),l=ee(()=>n.value.trim().length>0);function c(){if(!l.value)return;const h={name:n.value.trim(),annotated:s.value};s.value&&i.value.trim()&&(h.message=i.value.trim()),o.value&&a.value&&(h.pushToRemote=a.value),t("confirm",h)}function u(){n.value="",s.value=!1,i.value="",o.value=!1,a.value="",t("close")}return We(()=>s.value,h=>{h||(i.value="")}),(h,f)=>(v(),be(Gt,{title:"Create Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Tag",onClose:u,onConfirm:c},{default:ht(()=>[d("div",Gk,[f[5]||(f[5]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"At commit",-1)),d("div",Hk,_(r.commitHash.slice(0,7)),1)]),d("div",Kk,[f[6]||(f[6]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag name",-1)),Je(d("input",{"onUpdate:modelValue":f[0]||(f[0]=p=>nt(n)?n.value=p:null),type:"text",placeholder:"v1.0.0",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[Lt,m(n)]])]),d("div",Jk,[d("label",ew,[Je(d("input",{"onUpdate:modelValue":f[1]||(f[1]=p=>nt(s)?s.value=p:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[Or,m(s)]]),f[7]||(f[7]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Annotated tag "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Create a full tag object with message and tagger info ")],-1))])]),m(s)?(v(),y("div",tw,[f[8]||(f[8]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag message",-1)),Je(d("textarea",{"onUpdate:modelValue":f[2]||(f[2]=p=>nt(i)?i.value=p:null),rows:"3",placeholder:"Release description...",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none"},null,512),[[Lt,m(i)]])])):H("",!0),d("div",rw,[d("label",nw,[Je(d("input",{"onUpdate:modelValue":f[3]||(f[3]=p=>nt(o)?o.value=p:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan",disabled:r.remotes.length===0},null,8,sw),[[Or,m(o)]]),d("div",null,[d("span",{class:Ze(["text-sm font-mono transition-colors",r.remotes.length===0?"text-retro-muted":"text-retro-text group-hover:text-retro-cyan"])}," Push to remote ",2)])]),m(o)&&r.remotes.length>0?(v(),y("div",iw,[Je(d("select",{"onUpdate:modelValue":f[4]||(f[4]=p=>nt(a)?a.value=p:null),class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[f[9]||(f[9]=d("option",{value:"",disabled:"",class:"text-retro-muted"},"Select remote",-1)),(v(!0),y($e,null,Ye(r.remotes,p=>(v(),y("option",{key:p,value:p},_(p),9,ow))),128))],512),[[Cs,m(a)]])])):H("",!0)])]),_:1},8,["visible","loading","error"]))}}),lw={class:"text-retro-text text-sm font-mono mb-2"},cw={class:"text-retro-cyan"},uw={class:"space-y-3 mt-4"},hw={class:"flex items-center gap-2 cursor-pointer"},dw={key:0,class:"ml-6"},fw=["value"],pw=Ve({__name:"TagDeleteDialog",props:{visible:{type:Boolean},tagName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=T(!1),i=T("origin");function o(){n("confirm",{deleteFromRemote:s.value,remote:s.value?i.value:void 0})}return We(()=>t.visible,a=>{a&&(s.value=!1,i.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin")}),(a,l)=>(v(),be(Gt,{title:"Delete Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:ht(()=>[l[7]||(l[7]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",lw,[l[3]||(l[3]=Xe(" Delete tag ",-1)),d("span",cw,_(r.tagName),1),l[4]||(l[4]=Xe("? ",-1))]),d("div",uw,[d("label",hw,[Je(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>nt(s)?s.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[Or,m(s)]]),l[5]||(l[5]=d("span",{class:"text-retro-muted text-sm"},"Also delete from remote",-1))]),m(s)?(v(),y("div",dw,[l[6]||(l[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Remote",-1)),Je(d("select",{"onUpdate:modelValue":l[1]||(l[1]=c=>nt(i)?i.value=c:null),class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[(v(!0),y($e,null,Ye(r.remotes,c=>(v(),y("option",{key:c,value:c},_(c),9,fw))),128))],512),[[Cs,m(i)]])])):H("",!0)])]),_:1},8,["visible","loading","error"]))}}),mw={class:"mb-4"},gw={class:"text-retro-cyan text-sm font-mono"},Ow={class:"mb-4"},vw={class:"text-retro-text text-sm font-mono"},bw={class:"mb-4"},xw={class:"text-retro-text text-sm font-mono break-all select-all"},yw={class:"mb-4"},kw={class:"text-retro-text text-sm font-mono"},ww={class:"text-retro-muted"},Sw={class:"mb-4"},$w={class:"text-retro-text text-sm font-mono"},Cw={key:1,class:"mb-2"},Qw={class:"p-2 text-sm font-mono text-retro-text bg-retro-panel border border-retro-border rounded whitespace-pre-wrap"},Pw={key:1,class:"text-retro-muted text-sm font-mono text-center py-4"},Tw=Ve({__name:"TagDetailDialog",props:{visible:{type:Boolean},tagName:{},tagDetail:{},loading:{type:Boolean,default:!1}},emits:["close"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),be(Gt,{title:"Tag Details",visible:r.visible,loading:r.loading,"confirm-label":"Close","cancel-label":"Close",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("close"))},{default:ht(()=>[d("div",mw,[s[2]||(s[2]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tag",-1)),d("p",gw,_(r.tagName),1)]),r.tagDetail?(v(),y($e,{key:0},[d("div",Ow,[s[3]||(s[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Type",-1)),d("p",vw,_(r.tagDetail.isAnnotated?"Annotated":"Lightweight"),1)]),d("div",bw,[s[4]||(s[4]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Hash",-1)),d("p",xw,_(r.tagDetail.hash),1)]),r.tagDetail.tagger?(v(),y($e,{key:0},[d("div",yw,[s[5]||(s[5]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tagger",-1)),d("p",kw,[Xe(_(r.tagDetail.tagger.name)+" ",1),d("span",ww,"<"+_(r.tagDetail.tagger.email)+">",1)])]),d("div",Sw,[s[6]||(s[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Date",-1)),d("p",$w,_(r.tagDetail.tagger.date),1)])],64)):H("",!0),r.tagDetail.message?(v(),y("div",Cw,[s[7]||(s[7]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message",-1)),d("div",Qw,_(r.tagDetail.message),1)])):H("",!0)],64)):r.loading?(v(),y("div",Pw," Loading tag details... ")):H("",!0)]),_:1},8,["visible","loading"]))}}),_u=globalThis.setInterval,Mw={class:"h-full flex flex-col bg-retro-dark",role:"region","aria-label":"Git Graph"},Aw={key:0,class:"flex-1 flex flex-col items-center justify-center gap-3"},_w={key:1,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},Rw={key:2,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},Bw={class:"text-retro-red text-sm mb-4"},Zw={key:3,class:"flex-1 flex items-center justify-center p-4"},Ew={class:"flex-shrink-0 flex items-center gap-2 p-2 border-b border-retro-border"},Dw={class:"relative"},Lw={key:0,class:"absolute left-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-2 min-w-[200px]"},Xw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Iw=["checked"],Vw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},zw=["checked"],Nw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Ww=["checked"],qw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},jw=["checked"],Yw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Fw=["checked"],Uw={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},Gw=["checked"],Hw={class:"relative"},Kw=["aria-expanded"],Jw={key:0,class:"text-xs"},eS={key:0,class:"absolute right-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px] max-h-[400px] overflow-auto"},tS=["checked","onChange"],rS={class:"text-sm text-retro-text truncate"},nS={key:0,class:"text-[10px] text-retro-cyan"},sS={class:"px-3 py-1 text-[10px] text-retro-orange font-semibold uppercase tracking-wider mt-1"},iS=["checked","onChange"],oS={class:"text-sm text-retro-text truncate"},aS={class:"relative"},lS={key:0,class:"absolute right-0 top-full mt-1 z-20"},cS=["title"],uS={class:"text-retro-muted text-sm"},hS={class:"text-retro-cyan font-mono"},dS={class:"space-y-3"},fS={class:"text-retro-muted text-sm"},pS={class:"text-retro-cyan font-mono"},mS={class:"space-y-3"},gS={class:"text-retro-muted text-sm"},OS={class:"text-retro-magenta font-mono"},vS={key:0,class:"fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2.5 text-sm bg-retro-red/90 text-white rounded-lg shadow-lg max-w-sm",role:"alert"},bS={class:"flex-1"},xS=5e3,yS=Ve({__name:"GitGraph",props:{workingDirectory:{},isActive:{type:Boolean,default:!0}},setup(r){const e=r,t=ul(),n=vr(),s=Ey(),i=Ly(t),o=Xy(t,i),{checkoutDialog:a,confirmCheckout:l,createBranchDialog:c,confirmCreateBranch:u,deleteBranchDialog:h,confirmDeleteBranch:f,renameDialog:p,confirmRenameBranch:g,mergeDialog:O,confirmMerge:x,rebaseDialog:b,confirmRebase:k,pushDialog:$,confirmPush:P,pullDialog:R,confirmPull:V,cherryPickDialog:L,confirmCherryPick:ae,resetDialog:ce,confirmReset:Oe,tagCreateDialog:q,confirmTagCreate:X,tagDeleteDialog:E,confirmTagDelete:U,tagDetailDialog:j,stashDialog:W,confirmStash:I,stashBranchDialog:z,stashBranchInput:xe,confirmStashBranch:J,resetWorkingDialog:fe,confirmResetWorking:S,cleanUntrackedDialog:w,confirmCleanUntracked:M,isAnyDialogOpen:B}=i,{copyFeedback:K,branchMenu:oe,handleBranchContextMenu:ye,closeBranchMenu:Ne,handleBranchCheckout:Ce,handleBranchRename:He,handleBranchDelete:Ue,handleBranchMerge:pe,handleBranchRebase:Pe,handleBranchPush:le,handleBranchPull:he,handleBranchFetch:Y,handleBranchCopyName:Ae,handleBranchCreateBranch:Ie,commitMenu:ze,handleCommitContextMenu:_t,closeCommitMenu:Ht,handleCommitAddTag:ln,handleCommitCreateBranch:or,handleCommitCheckout:Xr,handleCommitCherryPick:xr,handleCommitRevert:Gn,handleCommitMergeInto:Ir,handleCommitReset:cn,handleCommitCopyHash:Qn,handleCommitCopySubject:Hn,tagMenu:Rt,handleTagContextMenu:un,closeTagMenu:Pn,handleTagViewDetails:Kn,handleTagDelete:Tn,handleTagPush:Kt,handleTagCopyName:hn,uncommittedMenu:G,closeUncommittedMenu:de,handleUncommittedStash:ne,handleUncommittedReset:ve,handleUncommittedClean:Be,stashMenu:qe,handleStashContextMenu:Ge,closeStashMenu:ot,handleStashApply:Mn,handleStashPop:yr,handleStashDrop:Jn,handleStashCreateBranch:mi,handleStashCopyName:gi,handleStashCopyHash:Oi}=o,vi=ee(()=>{const _e=n.activeConversation?.worktreeBranch;return _e?[_e]:[]}),bi=ee(()=>{const _e=[],F=t.selectedFeatureId;F&&_e.push(F);const xt=t.conversationBranch;return xt&&!_e.includes(xt)&&_e.push(xt),_e});We(()=>[n.activeConversation?.worktreeBranch,n.activeConversation?.baseBranch],([_e,F])=>{t.setConversationBranch(_e??null,F??null)},{immediate:!0});const xi=ee(()=>{const _e=t.previewBranch;return _e?[_e]:[]});We(()=>[n.previewingConversation?.worktreeBranch,n.previewingConversation?.baseBranch],([_e,F])=>{t.setPreviewBranch(_e??null,F??null)},{immediate:!0});const yi=ee(()=>{const _e={};return t.previewBranch&&t.previewMergeBase&&(_e[t.previewBranch]=t.previewMergeBase),_e}),It=ee(()=>{const _e={};return t.selectedFeatureId&&t.featureMergeBase&&(_e[t.selectedFeatureId]=t.featureMergeBase),t.conversationBranch&&t.conversationMergeBase&&(_e[t.conversationBranch]=t.conversationMergeBase),_e}),Vt=ee(()=>t.remotes.map(_e=>_e.name)),es=T(null);We(()=>e.workingDirectory,async _e=>{if(_e){await t.loadGitGraph(_e);const F=n.previewingConversation?.worktreeBranch;F&&await t.setPreviewBranch(F,n.previewingConversation?.baseBranch??null);const xt=n.activeConversation?.worktreeBranch;xt&&await t.setConversationBranch(xt,n.activeConversation?.baseBranch??null)}},{immediate:!0}),We(()=>e.isActive,_e=>{_e&&t.commits.length>0&&!t.error?s.startPolling(e.workingDirectory):s.stopPolling()},{immediate:!0}),We(()=>t.commits.length,_e=>{_e>0&&e.isActive&&!t.error&&s.startPolling(e.workingDirectory)}),We(()=>es.value,_e=>{_e&&s.setScrollCallbacks({getScrollPosition:()=>_e.getScrollPosition(),setScrollPosition:F=>_e.setScrollPosition(F)})}),Ct(()=>{s.cleanup(),t.reset()});const An=ee(()=>t.error?.includes("Not a Git repository")),dn=T(Date.now());let Vr=null;const Qs=()=>{Vr||(Vr=_u(()=>{dn.value=Date.now()},xS))},Ps=()=>{Vr&&(clearInterval(Vr),Vr=null)};Ot(()=>{We(()=>e.isActive,_e=>{_e?(dn.value=Date.now(),Qs()):Ps()},{immediate:!0})}),Ct(()=>{Ps()});const Ts=ee(()=>{const _e=t.lastRefreshTime;if(!_e)return null;const F=Math.floor((dn.value-_e)/1e3);return t.isRefreshing?"Syncing...":F<5?"Just now":F<60?`${F}s ago`:`${Math.floor(F/60)}m ago`}),zr=T(!1),ar=T(!1),wt=T(null);function Ms(){zr.value=!0,Ut(()=>wt.value?.focus())}function ts(){zr.value=!1,t.setSearchQuery("")}function ki(_e){t.setSearchQuery(_e)}const rs=Dy({onScrollToHead:()=>{const _e=t.commits.find(F=>F.isHead);_e&&t.selectCommit(_e)},onEscape:()=>{Nr.value?Nr.value=!1:ar.value?ar.value=!1:_r.value?_r.value=!1:zr.value?ts():t.isComparing?t.clearComparison():(t.selectedCommit||t.isUncommittedChangesSelected)&&t.clearSelection()}});Ot(()=>{rs.start()}),Ct(()=>{rs.stop()});const Nr=T(!1),_r=T(!1);async function As(){await t.fetchAll(!0)}async function ns(_e){await t.addRemote(_e.name,_e.url)}async function wi(_e){await t.editRemote(_e.name,_e.newUrl)}async function Si(_e){await t.deleteRemote(_e)}const ss=ee(()=>{const _e=[],F={};for(const xt of t.branches)if(t.localBranchNames.has(xt.name))_e.push(xt);else{const Q=xt.name.indexOf("/");if(Q>0){const Z=xt.name.substring(0,Q);F[Z]||(F[Z]=[]),F[Z].push(xt)}else _e.push(xt)}return{local:_e,remotes:F}});We(B,_e=>{_e?t.setActiveDialog({type:"generic",props:{}}):t.clearActiveDialog()});function $i(_e){t.selectedCommit?t.selectComparisonCommit(_e):t.selectCommit(_e)}function fn(_e){t.navigateToCommit(_e)}return(_e,F)=>{const xt=bv,Q=Bv,Z=ob,A=Cb,D=Nx,ie=dy,me=yy,ue=ky,ke=wy,Ke=Sy,it=$y,Bt=Gt;return v(),y("div",Mw,[m(t).loading&&m(t).commits.length===0?(v(),y("div",Aw,[...F[43]||(F[43]=[d("div",{class:"w-6 h-6 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),d("div",{class:"text-retro-muted text-sm"},"Loading git history...",-1)])])):m(An)?(v(),y("div",_w,[te(m(In),{class:"w-12 h-12 text-retro-yellow mb-4"}),F[44]||(F[44]=d("h3",{class:"text-retro-text font-semibold mb-2"},"Not a Git Repository",-1)),F[45]||(F[45]=d("p",{class:"text-retro-muted text-sm max-w-xs"},[Xe(" This directory is not initialized as a Git repository. Run "),d("code",{class:"text-retro-cyan"},"git init"),Xe(" to get started. ")],-1))])):m(t).error?(v(),y("div",Rw,[te(m(In),{class:"w-10 h-10 text-retro-red mb-3"}),d("p",Bw,_(m(t).error),1),d("button",{class:"flex items-center gap-2 px-3 py-1.5 text-sm text-retro-text border border-retro-border rounded hover:border-retro-cyan hover:text-retro-cyan transition-colors",onClick:F[0]||(F[0]=Ee=>m(t).loadGitGraph(e.workingDirectory))},[te(m(ys),{class:"w-4 h-4"}),F[46]||(F[46]=Xe(" Retry ",-1))])])):m(t).commits.length===0?(v(),y("div",Zw,[...F[47]||(F[47]=[d("div",{class:"text-retro-muted text-center"},[d("p",null,"No commits found in this repository.")],-1)])])):(v(),y($e,{key:4},[m(zr)?(v(),be(xt,{key:0,ref_key:"findWidgetRef",ref:wt,resultCount:m(t).searchResultHashes.length,currentIndex:m(t).searchResultIndex,onSearch:ki,onNext:m(t).nextSearchResult,onPrev:m(t).prevSearchResult,onClose:ts},null,8,["resultCount","currentIndex","onNext","onPrev"])):H("",!0),d("div",Ew,[d("button",{class:Ze(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(zr)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Find",title:"Find",onClick:F[1]||(F[1]=Ee=>m(zr)?ts():Ms())},[te(m(bs),{class:"w-4 h-4"})],2),d("div",Dw,[d("button",{class:Ze(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(Nr)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Graph settings",title:"Settings",onClick:F[2]||(F[2]=Ee=>Nr.value=!m(Nr))},[te(m(X1),{class:"w-4 h-4"})],2),m(Nr)?(v(),y("div",Lw,[F[54]||(F[54]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mb-1"}," Graph Style ",-1)),d("label",Xw,[d("input",{type:"radio",name:"graphStyle",value:"rounded",checked:m(t).graphStyle==="rounded",class:"accent-retro-cyan",onChange:F[3]||(F[3]=Ee=>m(t).setGraphStyle("rounded"))},null,40,Iw),F[48]||(F[48]=d("span",{class:"text-sm text-retro-text"},"Rounded",-1))]),d("label",Vw,[d("input",{type:"radio",name:"graphStyle",value:"angular",checked:m(t).graphStyle==="angular",class:"accent-retro-cyan",onChange:F[4]||(F[4]=Ee=>m(t).setGraphStyle("angular"))},null,40,zw),F[49]||(F[49]=d("span",{class:"text-sm text-retro-text"},"Angular",-1))]),F[55]||(F[55]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Display ",-1)),d("label",Nw,[d("input",{type:"checkbox",checked:m(t).muteNonAncestral,class:"accent-retro-cyan",onChange:F[5]||(F[5]=Ee=>m(t).toggleMuteNonAncestral())},null,40,Ww),F[50]||(F[50]=d("span",{class:"text-sm text-retro-text"},"Mute non-ancestral",-1))]),F[56]||(F[56]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Columns ",-1)),d("label",qw,[d("input",{type:"checkbox",checked:m(t).columnVisibility.commit!==!1,class:"accent-retro-cyan",onChange:F[6]||(F[6]=Ee=>m(t).toggleColumnVisibility("commit"))},null,40,jw),F[51]||(F[51]=d("span",{class:"text-sm text-retro-text"},"Hash",-1))]),d("label",Yw,[d("input",{type:"checkbox",checked:m(t).columnVisibility.author!==!1,class:"accent-retro-cyan",onChange:F[7]||(F[7]=Ee=>m(t).toggleColumnVisibility("author"))},null,40,Fw),F[52]||(F[52]=d("span",{class:"text-sm text-retro-text"},"Author",-1))]),d("label",Uw,[d("input",{type:"checkbox",checked:m(t).columnVisibility.date!==!1,class:"accent-retro-cyan",onChange:F[8]||(F[8]=Ee=>m(t).toggleColumnVisibility("date"))},null,40,Gw),F[53]||(F[53]=d("span",{class:"text-sm text-retro-text"},"Date",-1))])])):H("",!0)]),F[59]||(F[59]=d("span",{class:"flex-1"},null,-1)),d("div",Hw,[d("button",{class:Ze(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(ar)||m(t).filteredBranches.length>0?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Filter by branch","aria-expanded":m(ar),onClick:F[9]||(F[9]=Ee=>ar.value=!m(ar))},[te(m(sv),{class:"w-4 h-4"}),m(t).filteredBranches.length>0?(v(),y("span",Jw," ("+_(m(t).filteredBranches.length)+") ",1)):H("",!0)],10,Kw),m(ar)?(v(),y("div",eS,[F[58]||(F[58]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border"}," Filter by Branch ",-1)),m(t).filteredBranches.length>0?(v(),y("button",{key:0,class:"w-full text-left px-3 py-1.5 text-sm text-retro-cyan hover:bg-retro-cyan/10",onClick:F[10]||(F[10]=Ee=>m(t).clearFilters())}," Clear All Filters ")):H("",!0),m(ss).local.length>0?(v(),y($e,{key:1},[F[57]||(F[57]=d("div",{class:"px-3 py-1 text-[10px] text-retro-green font-semibold uppercase tracking-wider mt-1"}," Local ",-1)),(v(!0),y($e,null,Ye(m(ss).local,Ee=>(v(),y("label",{key:Ee.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:m(t).filteredBranches.includes(Ee.name),class:"accent-retro-cyan",onChange:lr=>m(t).toggleBranchFilter(Ee.name)},null,40,tS),d("span",rS,_(Ee.name),1),Ee.isHead?(v(),y("span",nS,"(HEAD)")):H("",!0)]))),128))],64)):H("",!0),(v(!0),y($e,null,Ye(m(ss).remotes,(Ee,lr)=>(v(),y($e,{key:lr},[d("div",sS,_(lr),1),(v(!0),y($e,null,Ye(Ee,_s=>(v(),y("label",{key:_s.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:m(t).filteredBranches.includes(_s.name),class:"accent-retro-cyan",onChange:Rh=>m(t).toggleBranchFilter(_s.name)},null,40,iS),d("span",oS,_(_s.name),1)]))),128))],64))),128))])):H("",!0)]),d("button",{class:Ze(["flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors",{"animate-spin":m(t).isRefreshing}]),"aria-label":"Refresh",title:"Refresh",onClick:F[11]||(F[11]=Ee=>m(t).loadGitGraph(e.workingDirectory))},[te(m(ys),{class:"w-4 h-4"})],2),d("button",{class:"flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors","aria-label":"Fetch all remotes",title:"Fetch All",onClick:As},[te(m(Fp),{class:"w-4 h-4"})]),d("div",aS,[d("button",{class:Ze(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",m(_r)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Manage remotes",title:"Remotes",onClick:F[12]||(F[12]=Ee=>_r.value=!m(_r))},[te(m(Up),{class:"w-4 h-4"})],2),m(_r)?(v(),y("div",lS,[te(Q,{remotes:m(t).remotes,onAdd:ns,onEdit:wi,onDelete:Si,onClose:F[13]||(F[13]=Ee=>_r.value=!1)},null,8,["remotes"])])):H("",!0)]),m(Ts)&&e.isActive?(v(),y("div",{key:0,class:Ze(["flex items-center text-[10px] text-retro-muted",{"text-retro-cyan":m(t).isRefreshing}]),title:m(t).lastRefreshTime?`Last checked: ${new Date(m(t).lastRefreshTime).toLocaleTimeString()}`:"","aria-live":"polite","aria-atomic":"true"},[d("span",{class:Ze(["inline-block w-1.5 h-1.5 rounded-full mr-1",m(t).isRefreshing?"bg-retro-cyan animate-pulse":"bg-retro-muted/50"]),"aria-hidden":"true"},null,2),Xe(" "+_(m(Ts)),1)],10,cS)):H("",!0)]),d("div",{class:Ze(["flex-1 min-h-0 overflow-hidden",{"max-h-[50%]":m(t).selectedCommit||m(t).isUncommittedChangesSelected}])},[te(Z,{ref_key:"commitListRef",ref:es,commits:m(t).filteredCommits,stashes:m(t).stashes,selectedCommit:m(t).selectedCommit,hasMore:m(t).hasMore,loading:m(t).loading,loadingMore:m(t).loadingMore,searchQuery:m(t).searchQuery,uncommittedChangesCount:m(t).uncommittedChangesCount,isUncommittedChangesSelected:m(t).isUncommittedChangesSelected,highlightBranches:m(vi),featureHighlightBranches:m(bi),featureMergeBases:m(It),previewHighlightBranches:m(xi),previewMergeBases:m(yi),currentBranchName:m(t).currentBranch?.name,localBranchNames:m(t).localBranchNames,graphStyle:m(t).graphStyle,muteNonAncestral:m(t).muteNonAncestral,columnVisibility:m(t).columnVisibility,onSelect:m(t).selectCommit,onLoadMore:m(t).loadMoreCommits,onBranchContextMenu:m(ye),onCommitContextMenu:m(_t),onTagContextMenu:m(un),onStashContextMenu:m(Ge),onCompareSelect:$i,onSelectUncommittedChanges:m(t).selectUncommittedChanges,onScrollStart:m(s).startInteraction,onScrollEnd:m(s).endInteraction},null,8,["commits","stashes","selectedCommit","hasMore","loading","loadingMore","searchQuery","uncommittedChangesCount","isUncommittedChangesSelected","highlightBranches","featureHighlightBranches","featureMergeBases","previewHighlightBranches","previewMergeBases","currentBranchName","localBranchNames","graphStyle","muteNonAncestral","columnVisibility","onSelect","onLoadMore","onBranchContextMenu","onCommitContextMenu","onTagContextMenu","onStashContextMenu","onSelectUncommittedChanges","onScrollStart","onScrollEnd"])],2),m(t).isComparing&&m(t).selectedCommit&&m(t).comparisonCommit?(v(),be(A,{key:1,fromCommit:m(t).comparisonCommit,toCommit:m(t).selectedCommit,files:m(t).comparisonFiles,stats:m(t).comparisonStats,loading:m(t).comparisonLoading,onClose:m(t).clearComparison},null,8,["fromCommit","toCommit","files","stats","loading","onClose"])):m(t).selectedCommit?(v(),be(D,{key:2,commit:m(t).selectedCommit,files:m(t).selectedCommitFiles,stats:m(t).selectedCommitStats,loading:m(t).isLoadingDetails,detailPosition:m(t).detailViewPosition,onClose:m(t).clearSelection,onNavigateToCommit:fn,onTogglePosition:m(t).toggleDetailViewPosition,onOpenFileDiff:F[14]||(F[14]=Ee=>m(t).selectedCommit&&m(t).openFileDiff(m(t).selectedCommit.hash,Ee))},null,8,["commit","files","stats","loading","detailPosition","onClose","onTogglePosition"])):H("",!0),m(t).isUncommittedChangesSelected?(v(),be(ie,{key:3,stagedFiles:m(t).stagedFiles,unstagedFiles:m(t).unstagedFiles,isStaging:m(t).isStaging,isCommitting:m(t).isCommitting,onClose:m(t).clearSelection,onStageFiles:F[15]||(F[15]=Ee=>m(t).stageFiles(Ee)),onUnstageFiles:F[16]||(F[16]=Ee=>m(t).unstageFiles(Ee)),onStageAll:F[17]||(F[17]=()=>m(t).stageFiles([])),onUnstageAll:F[18]||(F[18]=()=>m(t).unstageFiles([])),onCommit:F[19]||(F[19]=Ee=>m(t).commitChanges(Ee))},null,8,["stagedFiles","unstagedFiles","isStaging","isCommitting","onClose"])):H("",!0)],64)),m(oe).visible?(v(),be(me,{key:5,branchName:m(oe).branch,isCurrentBranch:m(oe).isCurrentBranch,isLocal:m(oe).isLocal,x:m(oe).x,y:m(oe).y,onClose:m(Ne),onCheckout:m(Ce),onCreateBranch:m(Ie),onDeleteBranch:m(Ue),onRename:m(He),onMerge:m(pe),onRebase:m(Pe),onPush:m(le),onPull:m(he),onFetch:m(Y),onCopyName:m(Ae)},null,8,["branchName","isCurrentBranch","isLocal","x","y","onClose","onCheckout","onCreateBranch","onDeleteBranch","onRename","onMerge","onRebase","onPush","onPull","onFetch","onCopyName"])):H("",!0),m(ze).visible&&m(ze).commit?(v(),be(ue,{key:6,commit:m(ze).commit,x:m(ze).x,y:m(ze).y,onClose:m(Ht),onAddTag:m(ln),onCreateBranch:m(or),onCheckout:m(Xr),onCherryPick:m(xr),onRevert:m(Gn),onMergeInto:m(Ir),onReset:m(cn),onCopyHash:m(Qn),onCopySubject:m(Hn)},null,8,["commit","x","y","onClose","onAddTag","onCreateBranch","onCheckout","onCherryPick","onRevert","onMergeInto","onReset","onCopyHash","onCopySubject"])):H("",!0),m(Rt).visible?(v(),be(ke,{key:7,tagName:m(Rt).tag,x:m(Rt).x,y:m(Rt).y,onClose:m(Pn),onViewDetails:m(Kn),onDeleteTag:m(Tn),onPushTag:m(Kt),onCopyName:m(hn)},null,8,["tagName","x","y","onClose","onViewDetails","onDeleteTag","onPushTag","onCopyName"])):H("",!0),m(qe).visible&&m(qe).stash?(v(),be(Ke,{key:8,stashIndex:m(qe).stash.index,stashMessage:m(qe).stash.message,x:m(qe).x,y:m(qe).y,onClose:m(ot),onApply:m(Mn),onPop:m(yr),onDrop:m(Jn),onCreateBranch:m(mi),onCopyName:m(gi),onCopyHash:m(Oi)},null,8,["stashIndex","stashMessage","x","y","onClose","onApply","onPop","onDrop","onCreateBranch","onCopyName","onCopyHash"])):H("",!0),m(G).visible?(v(),be(it,{key:9,x:m(G).x,y:m(G).y,onClose:m(de),onStash:m(ne),onReset:m(ve),onClean:m(Be)},null,8,["x","y","onClose","onStash","onReset","onClean"])):H("",!0),m(a).visible?(v(),be(Bt,{key:10,title:"Checkout",visible:m(a).visible,loading:m(a).loading,error:m(a).error,confirmLabel:"Checkout",onClose:F[20]||(F[20]=Ee=>m(a).visible=!1),onConfirm:m(l)},{default:ht(()=>[d("p",uS,[F[60]||(F[60]=Xe(" Are you sure you want to checkout ",-1)),d("span",hS,_(m(a).branchName),1),F[61]||(F[61]=Xe("? ",-1))])]),_:1},8,["visible","loading","error","onConfirm"])):H("",!0),m(p).visible?(v(),be(Bt,{key:11,title:"Rename Branch",visible:m(p).visible,loading:m(p).loading,error:m(p).error,confirmLabel:"Rename",onClose:F[23]||(F[23]=Ee=>m(p).visible=!1),onConfirm:m(g)},{default:ht(()=>[d("div",dS,[d("p",fS,[F[62]||(F[62]=Xe(" Rename ",-1)),d("span",pS,_(m(p).branchName),1)]),Je(d("input",{"onUpdate:modelValue":F[21]||(F[21]=Ee=>m(p).newName=Ee),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"New branch name",onKeyup:F[22]||(F[22]=Os((...Ee)=>m(g)&&m(g)(...Ee),["enter"]))},null,544),[[Lt,m(p).newName]])])]),_:1},8,["visible","loading","error","onConfirm"])):H("",!0),m(O).visible?(v(),be(uk,{key:12,visible:m(O).visible,branchName:m(O).branchName,loading:m(O).loading,error:m(O).error,onClose:F[24]||(F[24]=Ee=>m(O).visible=!1),onConfirm:m(x)},null,8,["visible","branchName","loading","error","onConfirm"])):H("",!0),m(h).visible?(v(),be(nk,{key:13,visible:m(h).visible,branchName:m(h).branchName,isLocal:m(h).isLocal,loading:m(h).loading,error:m(h).error,onClose:F[25]||(F[25]=Ee=>m(h).visible=!1),onConfirm:m(f)},null,8,["visible","branchName","isLocal","loading","error","onConfirm"])):H("",!0),m($).visible?(v(),be(Qk,{key:14,visible:m($).visible,branchName:m($).branchName,remotes:m(Vt),loading:m($).loading,error:m($).error,onClose:F[26]||(F[26]=Ee=>m($).visible=!1),onConfirm:m(P)},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):H("",!0),m(R).visible?(v(),be(Ok,{key:15,visible:m(R).visible,branchName:m(R).branchName,remotes:m(Vt),loading:m(R).loading,error:m(R).error,onClose:F[27]||(F[27]=Ee=>m(R).visible=!1),onConfirm:m(V)},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):H("",!0),m(b).visible?(v(),be(Bk,{key:16,visible:m(b).visible,branchName:m(t).currentBranch?.name||"HEAD",ontoBranch:m(b).branchName,loading:m(b).loading,error:m(b).error,onClose:F[28]||(F[28]=Ee=>m(b).visible=!1),onConfirm:m(k)},null,8,["visible","branchName","ontoBranch","loading","error","onConfirm"])):H("",!0),m(L).visible?(v(),be(jy,{key:17,visible:m(L).visible,commitHash:m(L).commitHash,commitMessage:m(L).commitMessage,loading:m(L).loading,error:m(L).error,onClose:F[29]||(F[29]=Ee=>m(L).visible=!1),onConfirm:m(ae)},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):H("",!0),m(ce).visible?(v(),be(Vk,{key:18,visible:m(ce).visible,commitHash:m(ce).commitHash,commitMessage:m(ce).commitMessage,loading:m(ce).loading,error:m(ce).error,onClose:F[30]||(F[30]=Ee=>m(ce).visible=!1),onConfirm:m(Oe)},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):H("",!0),m(q).visible?(v(),be(aw,{key:19,visible:m(q).visible,commitHash:m(q).commitHash,remotes:m(Vt),loading:m(q).loading,error:m(q).error,onClose:F[31]||(F[31]=Ee=>m(q).visible=!1),onConfirm:m(X)},null,8,["visible","commitHash","remotes","loading","error","onConfirm"])):H("",!0),m(E).visible?(v(),be(pw,{key:20,visible:m(E).visible,tagName:m(E).tagName,remotes:m(Vt),loading:m(E).loading,error:m(E).error,onClose:F[32]||(F[32]=Ee=>m(E).visible=!1),onConfirm:m(U)},null,8,["visible","tagName","remotes","loading","error","onConfirm"])):H("",!0),m(j).visible?(v(),be(Tw,{key:21,visible:m(j).visible,tagName:m(j).tagName,tagDetail:m(j).tagDetail,loading:m(j).loading,onClose:F[33]||(F[33]=Ee=>m(j).visible=!1)},null,8,["visible","tagName","tagDetail","loading"])):H("",!0),m(c).visible?(v(),be(Hy,{key:22,visible:m(c).visible,fromCommit:m(c).fromCommit,loading:m(c).loading,error:m(c).error,onClose:F[34]||(F[34]=Ee=>m(c).visible=!1),onConfirm:m(u)},null,8,["visible","fromCommit","loading","error","onConfirm"])):H("",!0),m(z).visible?(v(),be(Bt,{key:23,title:"Create Branch from Stash",visible:m(z).visible,loading:m(z).loading,error:m(z).error,confirmLabel:"Create Branch",onClose:F[37]||(F[37]=Ee=>m(z).visible=!1),onConfirm:F[38]||(F[38]=Ee=>m(J)(m(xe)))},{default:ht(()=>[d("div",mS,[d("p",gS,[F[63]||(F[63]=Xe(" Create a new branch from ",-1)),d("span",OS,"stash@"+_("{")+_(m(z).stashIndex)+_("}"),1)]),Je(d("input",{"onUpdate:modelValue":F[35]||(F[35]=Ee=>nt(xe)?xe.value=Ee:null),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"Branch name",onKeyup:F[36]||(F[36]=Os(Ee=>m(J)(m(xe)),["enter"]))},null,544),[[Lt,m(xe)]])])]),_:1},8,["visible","loading","error"])):H("",!0),m(W).visible?(v(),be(Uk,{key:24,visible:m(W).visible,loading:m(W).loading,error:m(W).error,onClose:F[39]||(F[39]=Ee=>m(W).visible=!1),onConfirm:m(I)},null,8,["visible","loading","error","onConfirm"])):H("",!0),m(fe).visible?(v(),be(jk,{key:25,visible:m(fe).visible,loading:m(fe).loading,error:m(fe).error,onClose:F[40]||(F[40]=Ee=>m(fe).visible=!1),onConfirm:m(S)},null,8,["visible","loading","error","onConfirm"])):H("",!0),m(w).visible?(v(),be(Ky,{key:26,visible:m(w).visible,loading:m(w).loading,error:m(w).error,onClose:F[41]||(F[41]=Ee=>m(w).visible=!1),onConfirm:m(M)},null,8,["visible","loading","error","onConfirm"])):H("",!0),(v(),be(Pr,{to:"body"},[te(xn,{name:"fade"},{default:ht(()=>[m(K).visible?(v(),y("div",{key:0,class:"fixed z-50 px-3 py-1.5 text-sm bg-retro-green text-retro-dark rounded shadow-lg",style:nr({left:`${m(K).x}px`,top:`${m(K).y-40}px`})}," Copied! ",4)):H("",!0)]),_:1})])),(v(),be(Pr,{to:"body"},[te(xn,{name:"fade"},{default:ht(()=>[m(t).operationError?(v(),y("div",vS,[te(m(In),{class:"w-4 h-4 flex-shrink-0"}),d("span",bS,_(m(t).operationError),1),d("button",{class:"flex-shrink-0 p-0.5 hover:bg-white/20 rounded transition-colors",onClick:F[42]||(F[42]=Ee=>m(t).clearOperationError()),"aria-label":"Dismiss error"},[te(m(Qt),{class:"w-3.5 h-3.5"})])])):H("",!0)]),_:1})]))])}}}),kS=ci(yS,[["__scopeId","data-v-52ace892"]]),wS=m1("/app-logo.svg"),SS={class:"flex items-start justify-between gap-2"},$S={class:"flex-1 min-w-0"},CS={class:"flex items-center gap-2"},QS={class:"font-mono text-sm text-retro-text truncate"},PS={class:"text-xs font-mono text-retro-muted mt-1 truncate"},TS={class:"flex items-center gap-1 flex-shrink-0"},MS={key:0,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-red",title:"Critical traceability gaps"},AS={key:1,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-yellow",title:"Major traceability gaps"},_S={key:2,class:"text-[10px] font-mono text-retro-muted mr-1",title:"Completed tasks / total tasks"},RS={key:3,class:"w-2 h-2 rounded-full bg-retro-green",title:"spec"},BS={key:4,class:"w-2 h-2 rounded-full bg-retro-cyan",title:"plan"},ZS={key:5,class:"w-2 h-2 rounded-full bg-retro-yellow",title:"tasks"},ES={class:"flex flex-wrap items-center justify-between gap-1 mt-2"},DS={key:0,class:"flex items-center gap-1"},LS=["title","disabled","onClick"],XS=Ve({__name:"FeatureCard",props:{feature:{},skills:{},isActive:{type:Boolean},criticalAlerts:{},majorAlerts:{}},emits:["select","cascade","openChat","skill"],setup(r,{emit:e}){const t={DocumentCheckIcon:K1,PuzzlePieceIcon:Nh,DocumentMagnifyingGlassIcon:ev,WrenchScrewdriverIcon:fv,SparklesIcon:Qa,BeakerIcon:W1,ShieldCheckIcon:Kp,CommandLineIcon:H1,CpuChipIcon:Q1,LightBulbIcon:av},n=r,s=e,i=vr();function o(f){return t[f]||Nh}function a(f){return f.prerequisites.every(p=>n.feature.files.some(g=>g.filename===p))}function l(f){return f.prerequisites.filter(p=>!n.feature.files.some(g=>g.filename===p))}function c(f){return a(f)?`${f.name} (Shift+click: new conversation)`:`Requires: ${l(f).join(", ")}`}const u=ee(()=>{const f=i.findConversationByFeature(n.feature.id);return f?i.isConversationStreaming(f.id):!1}),h=ee(()=>n.isActive?["border-retro-cyan shadow-retro","feature-card-active","dark:bg-gradient-to-br dark:from-retro-cyan/10 dark:via-retro-panel dark:to-retro-magenta/5"]:["border-retro-border","feature-card-light","hover:border-retro-muted","dark:bg-gradient-to-br","dark:from-retro-panel dark:via-retro-panel dark:to-retro-cyan/5","dark:hover:from-retro-cyan/5 dark:hover:via-retro-panel dark:hover:to-retro-magenta/5"]);return(f,p)=>(v(),y("button",{type:"button",class:Ze(["w-full p-3 text-left rounded-lg border transition-all duration-200 group",m(h)]),onClick:p[5]||(p[5]=g=>s("select",r.feature.id))},[d("div",SS,[d("div",$S,[d("div",CS,[te(m(Gs),{class:Ze(["h-4 w-4 flex-shrink-0 transition-colors duration-200",r.isActive?"text-retro-cyan":"text-retro-muted group-hover:text-retro-cyan"])},null,8,["class"]),d("span",QS,_(r.feature.id),1)]),d("p",PS,_(r.feature.name),1)]),d("div",TS,[r.criticalAlerts>0?(v(),y("span",MS,[p[6]||(p[6]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-red"},null,-1)),Xe(" "+_(r.criticalAlerts),1)])):H("",!0),r.majorAlerts>0?(v(),y("span",AS,[p[7]||(p[7]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-yellow"},null,-1)),Xe(" "+_(r.majorAlerts),1)])):H("",!0),r.feature.hasTasks?(v(),y("span",_S,_(r.feature.completedTasks)+"/"+_(r.feature.totalTasks),1)):H("",!0),r.feature.hasSpec?(v(),y("span",RS)):H("",!0),r.feature.hasPlan?(v(),y("span",BS)):H("",!0),r.feature.hasTasks?(v(),y("span",ZS)):H("",!0)])]),d("div",ES,[r.feature.hasSpec?(v(),y("div",DS,[d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Clarify spec (Shift+click: new conversation)",onClick:p[0]||(p[0]=kr(g=>s("cascade",g,r.feature.id,"clarify"),["stop"]))},[te(m(Tu),{class:"h-3.5 w-3.5"})]),d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Plan → Tasks → Implement (Shift+click: new conversation)",onClick:p[1]||(p[1]=kr(g=>s("cascade",g,r.feature.id,"plan"),["stop"]))},[te(m(Pu),{class:"h-3.5 w-3.5"})]),r.feature.hasPlan?(v(),y("button",{key:0,type:"button",class:"flex items-center justify-center p-1 bg-retro-yellow/20 text-retro-yellow rounded hover:bg-retro-yellow/30 transition-colors",title:"Tasks → Implement (Shift+click: new conversation)",onClick:p[2]||(p[2]=kr(g=>s("cascade",g,r.feature.id,"tasks"),["stop"]))},[te(m(Gp),{class:"h-3.5 w-3.5"})])):H("",!0),r.feature.hasTasks?(v(),y("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-magenta/20 text-retro-magenta rounded hover:bg-retro-magenta/30 transition-colors",title:"Implement (Shift+click: new conversation)",onClick:p[3]||(p[3]=kr(g=>s("cascade",g,r.feature.id,"implement"),["stop"]))},[te(m(uv),{class:"h-3.5 w-3.5"})])):H("",!0),r.skills.length>0?(v(),y($e,{key:2},[p[8]||(p[8]=d("div",{class:"w-px h-4 bg-retro-border mx-0.5"},null,-1)),(v(!0),y($e,null,Ye(r.skills,g=>(v(),y("button",{key:g.id,type:"button",class:Ze(["flex items-center justify-center p-1 rounded transition-colors",[a(g)&&!m(u)?"bg-retro-pink/20 text-retro-pink hover:bg-retro-pink/30":"bg-retro-subtle/10 text-retro-subtle cursor-not-allowed",m(u)?"animate-pulse":""]]),title:c(g),disabled:!a(g)||m(u),onClick:kr(O=>s("skill",O,r.feature.id,g.id),["stop"])},[(v(),be(Fs(o(g.icon)),{class:"h-3.5 w-3.5"}))],10,LS))),128))],64)):H("",!0)])):H("",!0),r.feature.hasSpec?(v(),y("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-green/20 text-retro-green rounded hover:bg-retro-green/30 transition-colors",title:"Open new chat linked to this spec",onClick:p[4]||(p[4]=kr(g=>s("openChat",g,r.feature.id),["stop"]))},[te(m(F1),{class:"h-3.5 w-3.5"})])):H("",!0)])],2))}});let xc=[],em=[];(()=>{let r="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<r.length;e++)(e%2?em:xc).push(t=t+r[e])})();function IS(r){if(r<768)return!1;for(let e=0,t=xc.length;;){let n=e+t>>1;if(r<xc[n])t=n;else if(r>=em[n])e=n+1;else return!0;if(e==t)return!1}}function Uh(r){return r>=127462&&r<=127487}const Gh=8205;function VS(r,e,t=!0,n=!0){return(t?tm:zS)(r,e,n)}function tm(r,e,t){if(e==r.length)return e;e&&rm(r.charCodeAt(e))&&nm(r.charCodeAt(e-1))&&e--;let n=Ql(r,e);for(e+=Hh(n);e<r.length;){let s=Ql(r,e);if(n==Gh||s==Gh||t&&IS(s))e+=Hh(s),n=s;else if(Uh(s)){let i=0,o=e-2;for(;o>=0&&Uh(Ql(r,o));)i++,o-=2;if(i%2==0)break;e+=2}else break}return e}function zS(r,e,t){for(;e>0;){let n=tm(r,e-2,t);if(n<e)return n;e--}return 0}function Ql(r,e){let t=r.charCodeAt(e);if(!nm(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return rm(n)?(t-55296<<10)+(n-56320)+65536:t}function rm(r){return r>=56320&&r<57344}function nm(r){return r>=55296&&r<56320}function Hh(r){return r<65536?1:2}class st{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=Ks(this,e,t);let s=[];return this.decompose(0,e,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(t,this.length,s,1),Gr.from(s,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Ks(this,e,t);let n=[];return this.decompose(e,t,n,0),Gr.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),s=new Xi(this),i=new Xi(e);for(let o=t,a=t;;){if(s.next(o),i.next(o),o=0,s.lineBreak!=i.lineBreak||s.done!=i.done||s.value!=i.value)return!1;if(a+=s.value.length,s.done||a>=n)return!0}}iter(e=1){return new Xi(this,e)}iterRange(e,t=this.length){return new sm(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;n=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new im(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?st.empty:e.length<=32?new vt(e):Gr.from(vt.split(e,[]))}}class vt extends st{constructor(e,t=NS(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.text[i],a=s+o.length;if((t?n:a)>=e)return new WS(s,a,n,o);s=a+1,n++}}decompose(e,t,n,s){let i=e<=0&&t>=this.length?this:new vt(Kh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=n.pop(),a=da(i.text,o.text.slice(),0,i.length);if(a.length<=32)n.push(new vt(a,o.length+i.length));else{let l=a.length>>1;n.push(new vt(a.slice(0,l)),new vt(a.slice(l)))}}else n.push(i)}replace(e,t,n){if(!(n instanceof vt))return super.replace(e,t,n);[e,t]=Ks(this,e,t);let s=da(this.text,da(n.text,Kh(this.text,0,e)),t),i=this.length+n.length-(t-e);return s.length<=32?new vt(s,i):Gr.from(vt.split(s,[]),i)}sliceString(e,t=this.length,n=`
12
- `){[e,t]=Ks(this,e,t);let s="";for(let i=0,o=0;i<=t&&o<this.text.length;o++){let a=this.text[o],l=i+a.length;i>e&&o&&(s+=n),e<l&&t>i&&(s+=a.slice(Math.max(0,e-i),t-i)),i=l+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],s=-1;for(let i of e)n.push(i),s+=i.length+1,n.length==32&&(t.push(new vt(n,s)),n=[],s=-1);return s>-1&&t.push(new vt(n,s)),t}}class Gr extends st{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.children[i],a=s+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,s);s=a+1,n=l+1}}decompose(e,t,n,s){for(let i=0,o=0;o<=t&&i<this.children.length;i++){let a=this.children[i],l=o+a.length;if(e<=l&&t>=o){let c=s&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=Ks(this,e,t),n.lines<this.lines)for(let s=0,i=0;s<this.children.length;s++){let o=this.children[s],a=i+o.length;if(e>=i&&t<=a){let l=o.replace(e-i,t-i,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let u=this.children.slice();return u[s]=l,new Gr(u,this.length-(t-e)+n.length)}return super.replace(i,a,l)}i=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
13
- `){[e,t]=Ks(this,e,t);let s="";for(let i=0,o=0;i<this.children.length&&o<=t;i++){let a=this.children[i],l=o+a.length;o>e&&i&&(s+=n),e<l&&t>o&&(s+=a.sliceString(e-o,t-o,n)),o=l+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Gr))return 0;let n=0,[s,i,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,i+=t){if(s==o||i==a)return n;let l=this.children[s],c=e.children[i];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,s)=>n+s.length+1,-1)){let n=0;for(let p of e)n+=p.lines;if(n<32){let p=[];for(let g of e)g.flatten(p);return new vt(p,t)}let s=Math.max(32,n>>5),i=s<<1,o=s>>1,a=[],l=0,c=-1,u=[];function h(p){let g;if(p.lines>i&&p instanceof Gr)for(let O of p.children)h(O);else p.lines>o&&(l>o||!l)?(f(),a.push(p)):p instanceof vt&&l&&(g=u[u.length-1])instanceof vt&&p.lines+g.lines<=32?(l+=p.lines,c+=p.length+1,u[u.length-1]=new vt(g.text.concat(p.text),g.length+1+p.length)):(l+p.lines>s&&f(),l+=p.lines,c+=p.length+1,u.push(p))}function f(){l!=0&&(a.push(u.length==1?u[0]:Gr.from(u,c)),c=-1,l=u.length=0)}for(let p of e)h(p);return f(),a.length==1?a[0]:new Gr(a,t)}}st.empty=new vt([""],0);function NS(r){let e=-1;for(let t of r)e+=t.length+1;return e}function da(r,e,t=0,n=1e9){for(let s=0,i=0,o=!0;i<r.length&&s<=n;i++){let a=r[i],l=s+a.length;l>=t&&(l>n&&(a=a.slice(0,n-s)),s<t&&(a=a.slice(t-s)),o?(e[e.length-1]+=a,o=!1):e.push(a)),s=l+1}return e}function Kh(r,e,t){return da(r,[""],e,t)}class Xi{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof vt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,s=this.nodes[n],i=this.offsets[n],o=i>>1,a=s instanceof vt?s.text.length:s.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
14
- `,this;e--}else if(s instanceof vt){let l=s.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=s.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof vt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class sm{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Xi(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=n?s:t<0?s.slice(s.length-n):s.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class im{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(st.prototype[Symbol.iterator]=function(){return this.iter()},Xi.prototype[Symbol.iterator]=sm.prototype[Symbol.iterator]=im.prototype[Symbol.iterator]=function(){return this});let WS=class{constructor(e,t,n,s){this.from=e,this.to=t,this.number=n,this.text=s}get length(){return this.to-this.from}};function Ks(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function Mt(r,e,t=!0,n=!0){return VS(r,e,t,n)}function qS(r){return r>=56320&&r<57344}function jS(r){return r>=55296&&r<56320}function er(r,e){let t=r.charCodeAt(e);if(!jS(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return qS(n)?(t-55296<<10)+(n-56320)+65536:t}function Ru(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function Hr(r){return r<65536?1:2}const yc=/\r\n?|\n/;var Dt=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(Dt||(Dt={}));class nn{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,s=0;t<this.sections.length;){let i=this.sections[t++],o=this.sections[t++];o<0?(e(n,s,i),s+=i):s+=o,n+=i}}iterChangedRanges(e,t=!1){kc(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];s<0?e.push(n,s):e.push(s,n)}return new nn(e)}composeDesc(e){return this.empty?e:e.empty?this:om(this,e)}mapDesc(e,t=!1){return e.empty?this:wc(this,e,t)}mapPos(e,t=-1,n=Dt.Simple){let s=0,i=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=s+a;if(l<0){if(c>e)return i+(e-s);i+=a}else{if(n!=Dt.Simple&&c>=e&&(n==Dt.TrackDel&&s<e&&c>e||n==Dt.TrackBefore&&s<e||n==Dt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==s||t<0?i:i+l;i+=l}s=c}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return i}touchesRange(e,t=e){for(let n=0,s=0;n<this.sections.length&&s<=t;){let i=this.sections[n++],o=this.sections[n++],a=s+i;if(o>=0&&s<=t&&a>=e)return s<e&&a>t?"cover":!0;s=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+n+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new nn(e)}static create(e){return new nn(e)}}class $t extends nn{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return kc(this,(t,n,s,i,o)=>e=e.replace(s,s+(n-t),o),!1),e}mapDesc(e,t=!1){return wc(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let s=0,i=0;s<t.length;s+=2){let o=t[s],a=t[s+1];if(a>=0){t[s]=a,t[s+1]=o;let l=s>>1;for(;n.length<l;)n.push(st.empty);n.push(o?e.slice(i,i+o):st.empty)}i+=o}return new $t(t,n)}compose(e){return this.empty?e:e.empty?this:om(this,e,!0)}map(e,t=!1){return e.empty?this:wc(this,e,t,!0)}iterChanges(e,t=!1){kc(this,e,t)}get desc(){return nn.create(this.sections)}filter(e){let t=[],n=[],s=[],i=new Yi(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&i.len==0;){if(i.done)break e;let u=Math.min(i.len,l-a);Nt(s,u,-1);let h=i.ins==-1?-1:i.off==0?i.ins:0;Nt(t,u,h),h>0&&Xn(n,t,i.text),i.forward(u),a+=u}let c=e[o++];for(;a<c;){if(i.done)break e;let u=Math.min(i.len,c-a);Nt(t,u,-1),Nt(s,u,i.ins==-1?-1:i.off==0?i.ins:0),i.forward(u),a+=u}}return{changes:new $t(t,n),filtered:nn.create(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],s=this.sections[t+1];s<0?e.push(n):s==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let s=[],i=[],o=0,a=null;function l(u=!1){if(!u&&!s.length)return;o<t&&Nt(s,t-o,-1);let h=new $t(s,i);a=a?a.compose(h.map(a)):h,s=[],i=[],o=0}function c(u){if(Array.isArray(u))for(let h of u)c(h);else if(u instanceof $t){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);l(),a=a?a.compose(u.map(a)):u}else{let{from:h,to:f=h,insert:p}=u;if(h>f||h<0||f>t)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${t})`);let g=p?typeof p=="string"?st.of(p.split(n||yc)):p:st.empty,O=g.length;if(h==f&&O==0)return;h<o&&l(),h>o&&Nt(s,h-o,-1),Nt(s,f-h,O),Xn(i,s,g),o=f}}return c(e),l(!a),a}static empty(e){return new $t(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let s=0;s<e.length;s++){let i=e[s];if(typeof i=="number")t.push(i,-1);else{if(!Array.isArray(i)||typeof i[0]!="number"||i.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(i.length==1)t.push(i[0],0);else{for(;n.length<s;)n.push(st.empty);n[s]=st.of(i.slice(1)),t.push(i[0],n[s].length)}}}return new $t(t,n)}static createSet(e,t){return new $t(e,t)}}function Nt(r,e,t,n=!1){if(e==0&&t<=0)return;let s=r.length-2;s>=0&&t<=0&&t==r[s+1]?r[s]+=e:s>=0&&e==0&&r[s]==0?r[s+1]+=t:n?(r[s]+=e,r[s+1]+=t):r.push(e,t)}function Xn(r,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<r.length)r[r.length-1]=r[r.length-1].append(t);else{for(;r.length<n;)r.push(st.empty);r.push(t)}}function kc(r,e,t){let n=r.inserted;for(let s=0,i=0,o=0;o<r.sections.length;){let a=r.sections[o++],l=r.sections[o++];if(l<0)s+=a,i+=a;else{let c=s,u=i,h=st.empty;for(;c+=a,u+=l,l&&n&&(h=h.append(n[o-2>>1])),!(t||o==r.sections.length||r.sections[o+1]<0);)a=r.sections[o++],l=r.sections[o++];e(s,c,i,u,h),s=c,i=u}}}function wc(r,e,t,n=!1){let s=[],i=n?[]:null,o=new Yi(r),a=new Yi(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);Nt(s,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(Nt(s,a.ins,-1);c;){let u=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=u&&(Nt(s,0,o.ins),i&&Xn(i,s,o.text),l=o.i),o.forward(u),c-=u}a.next()}else if(o.ins>=0){let c=0,u=o.len;for(;u;)if(a.ins==-1){let h=Math.min(u,a.len);c+=h,u-=h,a.forward(h)}else if(a.ins==0&&a.len<u)u-=a.len,a.next();else break;Nt(s,c,l<o.i?o.ins:0),i&&l<o.i&&Xn(i,s,o.text),l=o.i,o.forward(o.len-u)}else{if(o.done&&a.done)return i?$t.createSet(s,i):nn.create(s);throw new Error("Mismatched change set lengths")}}}function om(r,e,t=!1){let n=[],s=t?[]:null,i=new Yi(r),o=new Yi(e);for(let a=!1;;){if(i.done&&o.done)return s?$t.createSet(n,s):nn.create(n);if(i.ins==0)Nt(n,i.len,0,a),i.next();else if(o.len==0&&!o.done)Nt(n,0,o.ins,a),s&&Xn(s,n,o.text),o.next();else{if(i.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(i.len2,o.len),c=n.length;if(i.ins==-1){let u=o.ins==-1?-1:o.off?0:o.ins;Nt(n,l,u,a),s&&u&&Xn(s,n,o.text)}else o.ins==-1?(Nt(n,i.off?0:i.len,l,a),s&&Xn(s,n,i.textBit(l))):(Nt(n,i.off?0:i.len,o.off?0:o.ins,a),s&&!o.off&&Xn(s,n,o.text));a=(i.ins>l||o.ins>=0&&o.len>l)&&(a||n.length>c),i.forward2(l),o.forward(l)}}}}class Yi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?st.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?st.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class fs{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let n,s;return this.empty?n=s=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),n==this.from&&s==this.to?this:new fs(n,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return re.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return re.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return re.range(e.anchor,e.head)}static create(e,t,n){return new fs(e,t,n)}}class re{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:re.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new re([this.main],0)}addRange(e,t=!0){return re.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,re.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new re(e.ranges.map(t=>fs.fromJSON(t)),e.main)}static single(e,t=e){return new re([re.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,s=0;s<e.length;s++){let i=e[s];if(i.empty?i.from<=n:i.from<n)return re.normalized(e.slice(),t);n=i.to}return new re(e,t)}static cursor(e,t=0,n,s){return fs.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(s??16777215)<<6)}static range(e,t,n,s){let i=(n??16777215)<<6|(s==null?7:Math.min(6,s));return t<e?fs.create(t,e,48|i):fs.create(e,t,(t>e?8:0)|i)}static normalized(e,t=0){let n=e[t];e.sort((s,i)=>s.from-i.from),t=e.indexOf(n);for(let s=1;s<e.length;s++){let i=e[s],o=e[s-1];if(i.empty?i.from<=o.to:i.from<o.to){let a=o.from,l=Math.max(i.to,o.to);s<=t&&t--,e.splice(--s,2,i.anchor>i.head?re.range(l,a):re.range(a,l))}}return new re(e,t)}}function am(r,e){for(let t of r.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Bu=0;class Qe{constructor(e,t,n,s,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=s,this.id=Bu++,this.default=e([]),this.extensions=typeof i=="function"?i(this):i}get reader(){return this}static define(e={}){return new Qe(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Zu),!!e.static,e.enables)}of(e){return new fa([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new fa(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new fa(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}}function Zu(r,e){return r==e||r.length==e.length&&r.every((t,n)=>t===e[n])}class fa{constructor(e,t,n,s){this.dependencies=e,this.facet=t,this.type=n,this.value=s,this.id=Bu++}dynamicSlot(e){var t;let n=this.value,s=this.facet.compareInput,i=this.id,o=e[i]>>1,a=this.type==2,l=!1,c=!1,u=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:(((t=e[h.id])!==null&&t!==void 0?t:1)&1)==0&&u.push(e[h.id]);return{create(h){return h.values[o]=n(h),1},update(h,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||Sc(h,u)){let p=n(h);if(a?!Jh(p,h.values[o],s):!s(p,h.values[o]))return h.values[o]=p,1}return 0},reconfigure:(h,f)=>{let p,g=f.config.address[i];if(g!=null){let O=Ta(f,g);if(this.dependencies.every(x=>x instanceof Qe?f.facet(x)===h.facet(x):x instanceof At?f.field(x,!1)==h.field(x,!1):!0)||(a?Jh(p=n(h),O,s):s(p=n(h),O)))return h.values[o]=O,0}else p=n(h);return h.values[o]=p,1}}}}function Jh(r,e,t){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function Sc(r,e){let t=!1;for(let n of e)Ii(r,n)&1&&(t=!0);return t}function YS(r,e,t){let n=t.map(l=>r[l.id]),s=t.map(l=>l.type),i=n.filter(l=>!(l&1)),o=r[e.id]>>1;function a(l){let c=[];for(let u=0;u<n.length;u++){let h=Ta(l,n[u]);if(s[u]==2)for(let f of h)c.push(f);else c.push(h)}return e.combine(c)}return{create(l){for(let c of n)Ii(l,c);return l.values[o]=a(l),1},update(l,c){if(!Sc(l,i))return 0;let u=a(l);return e.compare(u,l.values[o])?0:(l.values[o]=u,1)},reconfigure(l,c){let u=Sc(l,n),h=c.config.facets[e.id],f=c.facet(e);if(h&&!u&&Zu(t,h))return l.values[o]=f,0;let p=a(l);return e.compare(p,f)?(l.values[o]=f,0):(l.values[o]=p,1)}}}const Lo=Qe.define({static:!0});class At{constructor(e,t,n,s,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=s,this.spec=i,this.provides=void 0}static define(e){let t=new At(Bu++,e.create,e.update,e.compare||((n,s)=>n===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Lo).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,s)=>{let i=n.values[t],o=this.updateF(i,s);return this.compareF(i,o)?0:(n.values[t]=o,1)},reconfigure:(n,s)=>{let i=n.facet(Lo),o=s.facet(Lo),a;return(a=i.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[t]=a.create(n),1):s.config.address[this.id]!=null?(n.values[t]=s.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,Lo.of({field:this,create:e})]}get extension(){return this}}const us={lowest:4,low:3,default:2,high:1,highest:0};function Ci(r){return e=>new lm(e,r)}const $n={highest:Ci(us.highest),high:Ci(us.high),default:Ci(us.default),low:Ci(us.low),lowest:Ci(us.lowest)};class lm{constructor(e,t){this.inner=e,this.prec=t}}class hl{of(e){return new $c(this,e)}reconfigure(e){return hl.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class $c{constructor(e,t){this.compartment=e,this.inner=t}}class Pa{constructor(e,t,n,s,i,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=s,this.staticValues=i,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let s=[],i=Object.create(null),o=new Map;for(let f of FS(e,t,o))f instanceof At?s.push(f):(i[f.facet.id]||(i[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of s)a[f.id]=c.length<<1,c.push(p=>f.slot(p));let u=n?.config.facets;for(let f in i){let p=i[f],g=p[0].facet,O=u&&u[f]||[];if(p.every(x=>x.type==0))if(a[g.id]=l.length<<1|1,Zu(O,p))l.push(n.facet(g));else{let x=g.combine(p.map(b=>b.value));l.push(n&&g.compare(x,n.facet(g))?n.facet(g):x)}else{for(let x of p)x.type==0?(a[x.id]=l.length<<1|1,l.push(x.value)):(a[x.id]=c.length<<1,c.push(b=>x.dynamicSlot(b)));a[g.id]=c.length<<1,c.push(x=>YS(x,g,p))}}let h=c.map(f=>f(a));return new Pa(e,o,h,a,l,i)}}function FS(r,e,t){let n=[[],[],[],[],[]],s=new Map;function i(o,a){let l=s.get(o);if(l!=null){if(l<=a)return;let c=n[l].indexOf(o);c>-1&&n[l].splice(c,1),o instanceof $c&&t.delete(o.compartment)}if(s.set(o,a),Array.isArray(o))for(let c of o)i(c,a);else if(o instanceof $c){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),i(c,a)}else if(o instanceof lm)i(o.inner,o.prec);else if(o instanceof At)n[a].push(o),o.provides&&i(o.provides,a);else if(o instanceof fa)n[a].push(o),o.facet.extensions&&i(o.facet.extensions,us.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);i(c,a)}}return i(r,us.default),n.reduce((o,a)=>o.concat(a))}function Ii(r,e){if(e&1)return 2;let t=e>>1,n=r.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;r.status[t]=4;let s=r.computeSlot(r,r.config.dynamicSlots[t]);return r.status[t]=2|s}function Ta(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}const cm=Qe.define(),Cc=Qe.define({combine:r=>r.some(e=>e),static:!0}),um=Qe.define({combine:r=>r.length?r[0]:void 0,static:!0}),hm=Qe.define(),dm=Qe.define(),fm=Qe.define(),pm=Qe.define({combine:r=>r.length?r[0]:!1});class Cn{constructor(e,t){this.type=e,this.value=t}static define(){return new US}}class US{of(e){return new Cn(this,e)}}class GS{constructor(e){this.map=e}of(e){return new je(this,e)}}class je{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new je(this.type,t)}is(e){return this.type==e}static define(e={}){return new GS(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let s of e){let i=s.map(t);i&&n.push(i)}return n}}je.reconfigure=je.define();je.appendConfig=je.define();class yt{constructor(e,t,n,s,i,o){this.startState=e,this.changes=t,this.selection=n,this.effects=s,this.annotations=i,this.scrollIntoView=o,this._doc=null,this._state=null,n&&am(n,t.newLength),i.some(a=>a.type==yt.time)||(this.annotations=i.concat(yt.time.of(Date.now())))}static create(e,t,n,s,i,o){return new yt(e,t,n,s,i,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(yt.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}yt.time=Cn.define();yt.userEvent=Cn.define();yt.addToHistory=Cn.define();yt.remote=Cn.define();function HS(r,e){let t=[];for(let n=0,s=0;;){let i,o;if(n<r.length&&(s==e.length||e[s]>=r[n]))i=r[n++],o=r[n++];else if(s<e.length)i=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<i?t.push(i,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function mm(r,e,t){var n;let s,i,o;return t?(s=e.changes,i=$t.empty(e.changes.length),o=r.changes.compose(e.changes)):(s=e.changes.map(r.changes),i=r.changes.mapDesc(e.changes,!0),o=r.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(i):(n=r.selection)===null||n===void 0?void 0:n.map(s),effects:je.mapEffects(r.effects,s).concat(je.mapEffects(e.effects,i)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function Qc(r,e,t){let n=e.selection,s=Is(e.annotations);return e.userEvent&&(s=s.concat(yt.userEvent.of(e.userEvent))),{changes:e.changes instanceof $t?e.changes:$t.of(e.changes||[],t,r.facet(um)),selection:n&&(n instanceof re?n:re.single(n.anchor,n.head)),effects:Is(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function gm(r,e,t){let n=Qc(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let i=1;i<e.length;i++){e[i].filter===!1&&(t=!1);let o=!!e[i].sequential;n=mm(n,Qc(r,e[i],o?n.changes.newLength:r.doc.length),o)}let s=yt.create(r,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return JS(t?KS(s):s)}function KS(r){let e=r.startState,t=!0;for(let s of e.facet(hm)){let i=s(r);if(i===!1){t=!1;break}Array.isArray(i)&&(t=t===!0?i:HS(t,i))}if(t!==!0){let s,i;if(t===!1)i=r.changes.invertedDesc,s=$t.empty(e.doc.length);else{let o=r.changes.filter(t);s=o.changes,i=o.filtered.mapDesc(o.changes).invertedDesc}r=yt.create(e,s,r.selection&&r.selection.map(i),je.mapEffects(r.effects,i),r.annotations,r.scrollIntoView)}let n=e.facet(dm);for(let s=n.length-1;s>=0;s--){let i=n[s](r);i instanceof yt?r=i:Array.isArray(i)&&i.length==1&&i[0]instanceof yt?r=i[0]:r=gm(e,Is(i),!1)}return r}function JS(r){let e=r.startState,t=e.facet(fm),n=r;for(let s=t.length-1;s>=0;s--){let i=t[s](r);i&&Object.keys(i).length&&(n=mm(n,Qc(e,i,r.changes.newLength),!0))}return n==r?r:yt.create(e,r.changes,r.selection,n.effects,n.annotations,n.scrollIntoView)}const e2=[];function Is(r){return r==null?e2:Array.isArray(r)?r:[r]}var mt=(function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r})(mt||(mt={}));const t2=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Pc;try{Pc=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function r2(r){if(Pc)return Pc.test(r);for(let e=0;e<r.length;e++){let t=r[e];if(/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||t2.test(t)))return!0}return!1}function n2(r){return e=>{if(!/\S/.test(e))return mt.Space;if(r2(e))return mt.Word;for(let t=0;t<r.length;t++)if(e.indexOf(r[t])>-1)return mt.Word;return mt.Other}}class tt{constructor(e,t,n,s,i,o){this.config=e,this.doc=t,this.selection=n,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=i,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)Ii(this,a<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Ii(this,n),Ta(this,n)}update(...e){return gm(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:s}=t;for(let a of e.effects)a.is(hl.reconfigure)?(t&&(s=new Map,t.compartments.forEach((l,c)=>s.set(c,l)),t=null),s.set(a.value.compartment,a.value.extension)):a.is(je.reconfigure)?(t=null,n=a.value):a.is(je.appendConfig)&&(t=null,n=Is(n).concat(a.value));let i;t?i=e.startState.values.slice():(t=Pa.resolve(n,s,this),i=new tt(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(Cc)?e.newSelection:e.newSelection.asSingle();new tt(t,e.newDoc,o,i,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:re.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),s=this.changes(n.changes),i=[n.range],o=Is(n.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),u=c.map(s);for(let f=0;f<a;f++)i[f]=i[f].map(u);let h=s.mapDesc(c,!0);i.push(l.range.map(h)),s=s.compose(u),o=je.mapEffects(o,u).concat(je.mapEffects(Is(l.effects),h))}return{changes:s,selection:re.create(i,t.mainIndex),effects:o}}changes(e=[]){return e instanceof $t?e:$t.of(e,this.doc.length,this.facet(tt.lineSeparator))}toText(e){return st.of(e.split(this.facet(tt.lineSeparator)||yc))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Ii(this,t),Ta(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let s=e[n];s instanceof At&&this.config.address[s.id]!=null&&(t[n]=s.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(n){for(let i in n)if(Object.prototype.hasOwnProperty.call(e,i)){let o=n[i],a=e[i];s.push(o.init(l=>o.spec.fromJSON(a,l)))}}return tt.create({doc:e.doc,selection:re.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=Pa.resolve(e.extensions||[],new Map),n=e.doc instanceof st?e.doc:st.of((e.doc||"").split(t.staticFacet(tt.lineSeparator)||yc)),s=e.selection?e.selection instanceof re?e.selection:re.single(e.selection.anchor,e.selection.head):re.single(0);return am(s,n.length),t.staticFacet(Cc)||(s=s.asSingle()),new tt(t,n,s,t.dynamicSlots.map(()=>null),(i,o)=>o.create(i),null)}get tabSize(){return this.facet(tt.tabSize)}get lineBreak(){return this.facet(tt.lineSeparator)||`
15
- `}get readOnly(){return this.facet(pm)}phrase(e,...t){for(let n of this.facet(tt.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,s)=>{if(s=="$")return"$";let i=+(s||1);return!i||i>t.length?n:t[i-1]})),e}languageDataAt(e,t,n=-1){let s=[];for(let i of this.facet(cm))for(let o of i(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return n2(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:s}=this.doc.lineAt(e),i=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=Mt(t,o,!1);if(i(t.slice(l,o))!=mt.Word)break;o=l}for(;a<s;){let l=Mt(t,a);if(i(t.slice(a,l))!=mt.Word)break;a=l}return o==a?null:re.range(o+n,a+n)}}tt.allowMultipleSelections=Cc;tt.tabSize=Qe.define({combine:r=>r.length?r[0]:4});tt.lineSeparator=um;tt.readOnly=pm;tt.phrases=Qe.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(s=>r[s]==e[s])}});tt.languageData=cm;tt.changeFilter=hm;tt.transactionFilter=dm;tt.transactionExtender=fm;hl.reconfigure=je.define();function on(r,e,t={}){let n={};for(let s of r)for(let i of Object.keys(s)){let o=s[i],a=n[i];if(a===void 0)n[i]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,i))n[i]=t[i](a,o);else throw new Error("Config merge conflict for field "+i)}for(let s in e)n[s]===void 0&&(n[s]=e[s]);return n}class zn{eq(e){return this==e}range(e,t=e){return Tc.create(e,t,this)}}zn.prototype.startSide=zn.prototype.endSide=0;zn.prototype.point=!1;zn.prototype.mapMode=Dt.TrackDel;function Eu(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}let Tc=class Om{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new Om(e,t,n)}};function Mc(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}class Du{constructor(e,t,n,s){this.from=e,this.to=t,this.value=n,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,s=0){let i=n?this.to:this.from;for(let o=s,a=i.length;;){if(o==a)return o;let l=o+a>>1,c=i[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,s){for(let i=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,i);i<o;i++)if(s(this.from[i]+e,this.to[i]+e,this.value[i])===!1)return!1}map(e,t){let n=[],s=[],i=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],u=this.from[l]+e,h=this.to[l]+e,f,p;if(u==h){let g=t.mapPos(u,c.startSide,c.mapMode);if(g==null||(f=p=g,c.startSide!=c.endSide&&(p=t.mapPos(u,c.endSide),p<f)))continue}else if(f=t.mapPos(u,c.startSide),p=t.mapPos(h,c.endSide),f>p||f==p&&c.startSide>0&&c.endSide<=0)continue;(p-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,p-f)),n.push(c),s.push(f-o),i.push(p-o))}return{mapped:n.length?new Du(s,i,n,a):null,pos:o}}}class et{constructor(e,t,n,s){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=s}static create(e,t,n,s){return new et(e,t,n,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:s=0,filterTo:i=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Mc)),this.isEmpty)return t.length?et.of(t):this;let a=new vm(this,null,-1).goto(0),l=0,c=[],u=new kn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];u.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||s>this.chunkEnd(a.chunkIndex)||i<this.chunkPos[a.chunkIndex])&&u.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||s>a.to||i<a.from||o(a.from,a.to,a.value))&&(u.addInner(a.from,a.to,a.value)||c.push(Tc.create(a.from,a.to,a.value))),a.next());return u.finishInner(this.nextLayer.isEmpty&&!c.length?et.empty:this.nextLayer.update({add:c,filter:o,filterFrom:s,filterTo:i}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],s=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)s=Math.max(s,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:u,pos:h}=l.map(a,e);u&&(s=Math.max(s,u.maxPoint),t.push(u),n.push(h))}}let i=this.nextLayer.map(e);return t.length==0?i:new et(n,t,i||et.empty,s)}between(e,t,n){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let i=this.chunkPos[s],o=this.chunk[s];if(t>=i&&e<=i+o.length&&o.between(i,e-i,t-i,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return Fi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Fi.from(e).goto(t)}static compare(e,t,n,s,i=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),l=ed(o,a,n),c=new Qi(o,l,i),u=new Qi(a,l,i);n.iterGaps((h,f,p)=>td(c,h,u,f,p,s)),n.empty&&n.length==0&&td(c,0,u,0,0,s)}static eq(e,t,n=0,s){s==null&&(s=999999999);let i=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),o=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(i.length!=o.length)return!1;if(!i.length)return!0;let a=ed(i,o),l=new Qi(i,a,0).goto(n),c=new Qi(o,a,0).goto(n);for(;;){if(l.to!=c.to||!Ac(l.active,c.active)||l.point&&(!c.point||!Eu(l.point,c.point)))return!1;if(l.to>s)return!0;l.next(),c.next()}}static spans(e,t,n,s,i=-1){let o=new Qi(e,null,i).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let u=o.activeForPoint(o.to),h=o.pointFrom<t?u.length+1:o.point.startSide<0?u.length:Math.min(u.length,l);s.point(a,c,o.point,u,h,o.pointRank),l=Math.min(o.openEnd(c),u.length)}else c>a&&(s.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,t=!1){let n=new kn;for(let s of e instanceof Tc?[e]:t?s2(e):e)n.add(s.from,s.to,s.value);return n.finish()}static join(e){if(!e.length)return et.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let s=e[n];s!=et.empty;s=s.nextLayer)t=new et(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}et.empty=new et([],[],null,-1);function s2(r){if(r.length>1)for(let e=r[0],t=1;t<r.length;t++){let n=r[t];if(Mc(e,n)>0)return r.slice().sort(Mc);e=n}return r}et.empty.nextLayer=et.empty;class kn{finishChunk(e){this.chunks.push(new Du(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new kn)).add(e,t,n)}addInner(e,t,n){let s=e-this.lastTo||n.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(et.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=et.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function ed(r,e,t){let n=new Map;for(let i of r)for(let o=0;o<i.chunk.length;o++)i.chunk[o].maxPoint<=0&&n.set(i.chunk[o],i.chunkPos[o]);let s=new Set;for(let i of e)for(let o=0;o<i.chunk.length;o++){let a=n.get(i.chunk[o]);a!=null&&(t?t.mapPos(a):a)==i.chunkPos[o]&&!t?.touchesRange(a,a+i.chunk[o].length)&&s.add(i.chunk[o])}return s}class vm{constructor(e,t,n,s=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let s=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(s)||this.layer.chunkEnd(this.chunkIndex)<e||s.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let s=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<s)&&this.setRangeIndex(s)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class Fi{constructor(e){this.heap=e}static from(e,t=null,n=-1){let s=[];for(let i=0;i<e.length;i++)for(let o=e[i];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&s.push(new vm(o,t,n,i));return s.length==1?s[0]:new Fi(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)Pl(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)Pl(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Pl(this.heap,0)}}}function Pl(r,e){for(let t=r[e];;){let n=(e<<1)+1;if(n>=r.length)break;let s=r[n];if(n+1<r.length&&s.compare(r[n+1])>=0&&(s=r[n+1],n++),t.compare(s)<0)break;r[n]=t,r[e]=s,e=n}}class Qi{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Fi.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Xo(this.active,e),Xo(this.activeTo,e),Xo(this.activeRank,e),this.minActive=rd(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:s,rank:i}=this.cursor;for(;t<this.activeRank.length&&(i-this.activeRank[t]||s-this.activeTo[t])>0;)t++;Io(this.active,t,n),Io(this.activeTo,t,s),Io(this.activeRank,t,i),e&&Io(e,t,this.cursor.from),this.minActive=rd(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),n&&Xo(n,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let i=this.cursor.value;if(!i.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=i,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=i.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let s=n.length-1;s>=0&&n[s]<e;s--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function td(r,e,t,n,s,i){r.goto(e),t.goto(n);let o=n+s,a=n,l=n-e,c=!!i.boundChange;for(let u=!1;;){let h=r.to+l-t.to,f=h||r.endSide-t.endSide,p=f<0?r.to+l:t.to,g=Math.min(p,o);if(r.point||t.point?(r.point&&t.point&&Eu(r.point,t.point)&&Ac(r.activeForPoint(r.to),t.activeForPoint(t.to))||i.comparePoint(a,g,r.point,t.point),u=!1):(u&&i.boundChange(a),g>a&&!Ac(r.active,t.active)&&i.compareRange(a,g,r.active,t.active),c&&g<o&&(h||r.openEnd(p)!=t.openEnd(p))&&(u=!0)),p>o)break;a=p,f<=0&&r.next(),f>=0&&t.next()}}function Ac(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!=e[t]&&!Eu(r[t],e[t]))return!1;return!0}function Xo(r,e){for(let t=e,n=r.length-1;t<n;t++)r[t]=r[t+1];r.pop()}function Io(r,e,t){for(let n=r.length-1;n>=e;n--)r[n+1]=r[n];r[e]=t}function rd(r,e){let t=-1,n=1e9;for(let s=0;s<e.length;s++)(e[s]-n||r[s].endSide-r[t].endSide)<0&&(t=s,n=e[s]);return t}function Zr(r,e,t=r.length){let n=0;for(let s=0;s<t&&s<r.length;)r.charCodeAt(s)==9?(n+=e-n%e,s++):(n++,s=Mt(r,s));return n}function _c(r,e,t,n){for(let s=0,i=0;;){if(i>=e)return s;if(s==r.length)break;i+=r.charCodeAt(s)==9?t-i%t:1,s=Mt(r,s)}return n===!0?-1:r.length}const Rc="ͼ",nd=typeof Symbol>"u"?"__"+Rc:Symbol.for(Rc),Bc=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),sd=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Nn{constructor(e,t){this.rules=[];let{finish:n}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function i(o,a,l,c){let u=[],h=/^@(\w+)\b/.exec(o[0]),f=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let p in a){let g=a[p];if(/&/.test(p))i(p.split(/,\s*/).map(O=>o.map(x=>O.replace(/&/,x))).reduce((O,x)=>O.concat(x)),g,l);else if(g&&typeof g=="object"){if(!h)throw new RangeError("The value of a property ("+p+") should be a primitive value.");i(s(p),g,u,f)}else g!=null&&u.push(p.replace(/_.*/,"").replace(/[A-Z]/g,O=>"-"+O.toLowerCase())+": "+g+";")}(u.length||f)&&l.push((n&&!h&&!c?o.map(n):o).join(", ")+" {"+u.join(" ")+"}")}for(let o in e)i(s(o),e[o],this.rules)}getRules(){return this.rules.join(`
16
- `)}static newName(){let e=sd[nd]||1;return sd[nd]=e+1,Rc+e.toString(36)}static mount(e,t,n){let s=e[Bc],i=n&&n.nonce;s?i&&s.setNonce(i):s=new i2(e,i),s.mount(Array.isArray(t)?t:[t],e)}}let id=new Map;class i2{constructor(e,t){let n=e.ownerDocument||e,s=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let i=id.get(n);if(i)return e[Bc]=i;this.sheet=new s.CSSStyleSheet,id.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Bc]=this}mount(e,t){let n=this.sheet,s=0,i=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<i&&l>-1&&(this.modules.splice(l,1),i--,l=-1),l==-1){if(this.modules.splice(i++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],s++)}else{for(;i<l;)s+=this.modules[i++].rules.length;s+=a.rules.length,i++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
17
- `;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var Wn={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Ui={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},o2=typeof navigator<"u"&&/Mac/.test(navigator.platform),a2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Et=0;Et<10;Et++)Wn[48+Et]=Wn[96+Et]=String(Et);for(var Et=1;Et<=24;Et++)Wn[Et+111]="F"+Et;for(var Et=65;Et<=90;Et++)Wn[Et]=String.fromCharCode(Et+32),Ui[Et]=String.fromCharCode(Et);for(var Tl in Wn)Ui.hasOwnProperty(Tl)||(Ui[Tl]=Wn[Tl]);function l2(r){var e=o2&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||a2&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Ui:Wn)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function ct(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=t[n];typeof s=="string"?r.setAttribute(n,s):s!=null&&(r[n]=s)}e++}for(;e<arguments.length;e++)bm(r,arguments[e]);return r}function bm(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)bm(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}let Yt=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Zc=typeof document<"u"?document:{documentElement:{style:{}}};const Ec=/Edge\/(\d+)/.exec(Yt.userAgent),xm=/MSIE \d/.test(Yt.userAgent),Dc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Yt.userAgent),dl=!!(xm||Dc||Ec),od=!dl&&/gecko\/(\d+)/i.test(Yt.userAgent),Ml=!dl&&/Chrome\/(\d+)/.exec(Yt.userAgent),c2="webkitFontSmoothing"in Zc.documentElement.style,Lc=!dl&&/Apple Computer/.test(Yt.vendor),ad=Lc&&(/Mobile\/\w+/.test(Yt.userAgent)||Yt.maxTouchPoints>2);var Me={mac:ad||/Mac/.test(Yt.platform),windows:/Win/.test(Yt.platform),linux:/Linux|X11/.test(Yt.platform),ie:dl,ie_version:xm?Zc.documentMode||6:Dc?+Dc[1]:Ec?+Ec[1]:0,gecko:od,gecko_version:od?+(/Firefox\/(\d+)/.exec(Yt.userAgent)||[0,0])[1]:0,chrome:!!Ml,chrome_version:Ml?+Ml[1]:0,ios:ad,android:/Android\b/.test(Yt.userAgent),webkit_version:c2?+(/\bAppleWebKit\/(\d+)/.exec(Yt.userAgent)||[0,0])[1]:0,safari:Lc,safari_version:Lc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Yt.userAgent)||[0,0])[1]:0,tabSize:Zc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Lu(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}const Ma=Object.create(null);function Xu(r,e,t){if(r==e)return!0;r||(r=Ma),e||(e=Ma);let n=Object.keys(r),s=Object.keys(e);if(n.length-0!=s.length-0)return!1;for(let i of n)if(i!=t&&(s.indexOf(i)==-1||r[i]!==e[i]))return!1;return!0}function u2(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function ld(r,e,t){let n=!1;if(e)for(let s in e)t&&s in t||(n=!0,s=="style"?r.style.cssText="":r.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(n=!0,s=="style"?r.style.cssText=t[s]:r.setAttribute(s,t[s]));return n}function h2(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}class an{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var Xt=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(Xt||(Xt={}));class Le extends zn{constructor(e,t,n,s){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=s}get heightRelevant(){return!1}static mark(e){return new yo(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new ks(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:i,end:o}=ym(e,t);n=(i?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new ks(e,n,s,t,e.widget||null,!0)}static line(e){return new ko(e)}static set(e,t=!1){return et.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Le.none=et.empty;class yo extends Le{constructor(e){let{start:t,end:n}=ym(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Lu(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Ma}eq(e){return this==e||e instanceof yo&&this.tagName==e.tagName&&Xu(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}yo.prototype.point=!1;class ko extends Le{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof ko&&this.spec.class==e.spec.class&&Xu(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}ko.prototype.mapMode=Dt.TrackBefore;ko.prototype.point=!0;class ks extends Le{constructor(e,t,n,s,i,o){super(t,n,i,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?Dt.TrackBefore:Dt.TrackAfter:Dt.TrackDel}get type(){return this.startSide!=this.endSide?Xt.WidgetRange:this.startSide<=0?Xt.WidgetBefore:Xt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof ks&&d2(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}ks.prototype.point=!0;function ym(r,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=r;return t==null&&(t=r.inclusive),n==null&&(n=r.inclusive),{start:t??e,end:n??e}}function d2(r,e){return r==e||!!(r&&e&&r.compare(e))}function Vs(r,e,t,n=0){let s=t.length-1;s>=0&&t[s]+n>=r?t[s]=Math.max(t[s],e):t.push(r,e)}class Gi extends zn{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof Gi&&this.tagName==e.tagName&&Xu(this.attributes,e.attributes)}static create(e){return new Gi(e.tagName,e.attributes||Ma)}static set(e,t=!1){return et.of(e,t)}}Gi.prototype.startSide=Gi.prototype.endSide=-1;function Hi(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function Xc(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function Vi(r,e){if(!e.anchorNode)return!1;try{return Xc(r,e.anchorNode)}catch{return!1}}function pa(r){return r.nodeType==3?Ki(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function zi(r,e,t,n){return t?cd(r,e,t,n,-1)||cd(r,e,t,n,1):!1}function qn(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function Aa(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}function cd(r,e,t,n,s){for(;;){if(r==t&&e==n)return!0;if(e==(s<0?0:wn(r))){if(r.nodeName=="DIV")return!1;let i=r.parentNode;if(!i||i.nodeType!=1)return!1;e=qn(r)+(s<0?0:1),r=i}else if(r.nodeType==1){if(r=r.childNodes[e+(s<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=s<0?wn(r):0}else return!1}}function wn(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function _a(r,e){let t=e?r.left:r.right;return{left:t,right:t,top:r.top,bottom:r.bottom}}function f2(r){let e=r.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function km(r,e){let t=e.width/r.offsetWidth,n=e.height/r.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-r.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-r.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function p2(r,e,t,n,s,i,o,a){let l=r.ownerDocument,c=l.defaultView||window;for(let u=r,h=!1;u&&!h;)if(u.nodeType==1){let f,p=u==l.body,g=1,O=1;if(p)f=f2(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(h=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let k=u.getBoundingClientRect();({scaleX:g,scaleY:O}=km(u,k)),f={left:k.left,right:k.left+u.clientWidth*g,top:k.top,bottom:k.top+u.clientHeight*O}}let x=0,b=0;if(s=="nearest")e.top<f.top?(b=e.top-(f.top+o),t>0&&e.bottom>f.bottom+b&&(b=e.bottom-f.bottom+o)):e.bottom>f.bottom&&(b=e.bottom-f.bottom+o,t<0&&e.top-b<f.top&&(b=e.top-(f.top+o)));else{let k=e.bottom-e.top,$=f.bottom-f.top;b=(s=="center"&&k<=$?e.top+k/2-$/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-$+o)-f.top}if(n=="nearest"?e.left<f.left?(x=e.left-(f.left+i),t>0&&e.right>f.right+x&&(x=e.right-f.right+i)):e.right>f.right&&(x=e.right-f.right+i,t<0&&e.left<f.left+x&&(x=e.left-(f.left+i))):x=(n=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:n=="start"==a?e.left-i:e.right-(f.right-f.left)+i)-f.left,x||b)if(p)c.scrollBy(x,b);else{let k=0,$=0;if(b){let P=u.scrollTop;u.scrollTop+=b/O,$=(u.scrollTop-P)*O}if(x){let P=u.scrollLeft;u.scrollLeft+=x/g,k=(u.scrollLeft-P)*g}e={left:e.left-k,top:e.top-$,right:e.right-k,bottom:e.bottom-$},k&&Math.abs(k-x)<1&&(n="nearest"),$&&Math.abs($-b)<1&&(s="nearest")}if(p)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function m2(r){let e=r.ownerDocument,t,n;for(let s=r.parentNode;s&&!(s==e.body||t&&n);)if(s.nodeType==1)!n&&s.scrollHeight>s.clientHeight&&(n=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:n}}class g2{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?wn(t):0),n,Math.min(e.focusOffset,n?wn(n):0))}set(e,t,n,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=s}}let cs=null;Me.safari&&Me.safari_version>=26&&(cs=!1);function wm(r){if(r.setActive)return r.setActive();if(cs)return r.focus(cs);let e=[];for(let t=r;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(r.focus(cs==null?{get preventScroll(){return cs={preventScroll:!0},!0}}:void 0),!cs){cs=!1;for(let t=0;t<e.length;){let n=e[t++],s=e[t++],i=e[t++];n.scrollTop!=s&&(n.scrollTop=s),n.scrollLeft!=i&&(n.scrollLeft=i)}}}let ud;function Ki(r,e,t=e){let n=ud||(ud=document.createRange());return n.setEnd(r,t),n.setStart(r,e),n}function zs(r,e,t,n){let s={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:s.altKey,ctrlKey:s.ctrlKey,shiftKey:s.shiftKey,metaKey:s.metaKey}=n);let i=new KeyboardEvent("keydown",s);i.synthetic=!0,r.dispatchEvent(i);let o=new KeyboardEvent("keyup",s);return o.synthetic=!0,r.dispatchEvent(o),i.defaultPrevented||o.defaultPrevented}function O2(r){for(;r;){if(r&&(r.nodeType==9||r.nodeType==11&&r.host))return r;r=r.assignedSlot||r.parentNode}return null}function v2(r,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,wn(t));;)if(n){if(t.nodeType!=1)return!1;let s=t.childNodes[n-1];s.contentEditable=="false"?n--:(t=s,n=wn(t))}else{if(t==r)return!0;n=qn(t),t=t.parentNode}}function Sm(r){return r.scrollTop>Math.max(1,r.scrollHeight-r.clientHeight-4)}function $m(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=wn(t)}else if(t.parentNode&&!Aa(t))n=qn(t),t=t.parentNode;else return null}}function Cm(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n<t.nodeValue.length)return{node:t,offset:n};if(t.nodeType==1&&n<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[n],n=0}else if(t.parentNode&&!Aa(t))n=qn(t)+1,t=t.parentNode;else return null}}class Br{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new Br(e.parentNode,qn(e),t)}static after(e,t){return new Br(e.parentNode,qn(e)+1,t)}}var dt=(function(r){return r[r.LTR=0]="LTR",r[r.RTL=1]="RTL",r})(dt||(dt={}));const ws=dt.LTR,Iu=dt.RTL;function Qm(r){let e=[];for(let t=0;t<r.length;t++)e.push(1<<+r[t]);return e}const b2=Qm("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),x2=Qm("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Ic=Object.create(null),jr=[];for(let r of["()","[]","{}"]){let e=r.charCodeAt(0),t=r.charCodeAt(1);Ic[e]=t,Ic[t]=-e}function Pm(r){return r<=247?b2[r]:1424<=r&&r<=1524?2:1536<=r&&r<=1785?x2[r-1536]:1774<=r&&r<=2220?4:8192<=r&&r<=8204?256:64336<=r&&r<=65023?4:1}const y2=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class Jr{get dir(){return this.level%2?Iu:ws}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,s){let i=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==n)return o;(i<0||(s!=0?s<0?a.from<t:a.to>t:e[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}function Tm(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++){let n=r[t],s=e[t];if(n.from!=s.from||n.to!=s.to||n.direction!=s.direction||!Tm(n.inner,s.inner))return!1}return!0}const ut=[];function k2(r,e,t,n,s){for(let i=0;i<=n.length;i++){let o=i?n[i-1].to:e,a=i<n.length?n[i].from:t,l=i?256:s;for(let c=o,u=l,h=l;c<a;c++){let f=Pm(r.charCodeAt(c));f==512?f=u:f==8&&h==4&&(f=16),ut[c]=f==4?2:f,f&7&&(h=f),u=f}for(let c=o,u=l,h=l;c<a;c++){let f=ut[c];if(f==128)c<a-1&&u==ut[c+1]&&u&24?f=ut[c]=u:ut[c]=256;else if(f==64){let p=c+1;for(;p<a&&ut[p]==64;)p++;let g=c&&u==8||p<t&&ut[p]==8?h==1?1:8:256;for(let O=c;O<p;O++)ut[O]=g;c=p-1}else f==8&&h==1&&(ut[c]=1);u=f,f&7&&(h=f)}}}function w2(r,e,t,n,s){let i=s==1?2:1;for(let o=0,a=0,l=0;o<=n.length;o++){let c=o?n[o-1].to:e,u=o<n.length?n[o].from:t;for(let h=c,f,p,g;h<u;h++)if(p=Ic[f=r.charCodeAt(h)])if(p<0){for(let O=a-3;O>=0;O-=3)if(jr[O+1]==-p){let x=jr[O+2],b=x&2?s:x&4?x&1?i:s:0;b&&(ut[h]=ut[jr[O]]=b),a=O;break}}else{if(jr.length==189)break;jr[a++]=h,jr[a++]=f,jr[a++]=l}else if((g=ut[h])==2||g==1){let O=g==s;l=O?0:1;for(let x=a-3;x>=0;x-=3){let b=jr[x+2];if(b&2)break;if(O)jr[x+2]|=2;else{if(b&4)break;jr[x+2]|=4}}}}}function S2(r,e,t,n){for(let s=0,i=n;s<=t.length;s++){let o=s?t[s-1].to:r,a=s<t.length?t[s].from:e;for(let l=o;l<a;){let c=ut[l];if(c==256){let u=l+1;for(;;)if(u==a){if(s==t.length)break;u=t[s++].to,a=s<t.length?t[s].from:e}else if(ut[u]==256)u++;else break;let h=i==1,f=(u<e?ut[u]:n)==1,p=h==f?h?1:2:n;for(let g=u,O=s,x=O?t[O-1].to:r;g>l;)g==x&&(g=t[--O].from,x=O?t[O-1].to:r),ut[--g]=p;l=u}else i=c,l++}}}function Vc(r,e,t,n,s,i,o){let a=n%2?2:1;if(n%2==s%2)for(let l=e,c=0;l<t;){let u=!0,h=!1;if(c==i.length||l<i[c].from){let O=ut[l];O!=a&&(u=!1,h=O==16)}let f=!u&&a==1?[]:null,p=u?n:n+1,g=l;e:for(;;)if(c<i.length&&g==i[c].from){if(h)break e;let O=i[c];if(!u)for(let x=O.to,b=c+1;;){if(x==t)break e;if(b<i.length&&i[b].from==x)x=i[b++].to;else{if(ut[x]==a)break e;break}}if(c++,f)f.push(O);else{O.from>l&&o.push(new Jr(l,O.from,p));let x=O.direction==ws!=!(p%2);zc(r,x?n+1:n,s,O.inner,O.from,O.to,o),l=O.to}g=O.to}else{if(g==t||(u?ut[g]!=a:ut[g]==a))break;g++}f?Vc(r,l,g,n+1,s,f,o):l<g&&o.push(new Jr(l,g,p)),l=g}else for(let l=t,c=i.length;l>e;){let u=!0,h=!1;if(!c||l>i[c-1].to){let O=ut[l-1];O!=a&&(u=!1,h=O==16)}let f=!u&&a==1?[]:null,p=u?n:n+1,g=l;e:for(;;)if(c&&g==i[c-1].to){if(h)break e;let O=i[--c];if(!u)for(let x=O.from,b=c;;){if(x==e)break e;if(b&&i[b-1].to==x)x=i[--b].from;else{if(ut[x-1]==a)break e;break}}if(f)f.push(O);else{O.to<l&&o.push(new Jr(O.to,l,p));let x=O.direction==ws!=!(p%2);zc(r,x?n+1:n,s,O.inner,O.from,O.to,o),l=O.from}g=O.from}else{if(g==e||(u?ut[g-1]!=a:ut[g-1]==a))break;g--}f?Vc(r,g,l,n+1,s,f,o):g<l&&o.push(new Jr(g,l,p)),l=g}}function zc(r,e,t,n,s,i,o){let a=e%2?2:1;k2(r,s,i,n,a),w2(r,s,i,n,a),S2(s,i,n,a),Vc(r,s,i,e,t,n,o)}function $2(r,e,t){if(!r)return[new Jr(0,0,e==Iu?1:0)];if(e==ws&&!t.length&&!y2.test(r))return Mm(r.length);if(t.length)for(;r.length>ut.length;)ut[ut.length]=256;let n=[],s=e==ws?0:1;return zc(r,s,s,t,0,r.length,n),n}function Mm(r){return[new Jr(0,r,0)]}let Am="";function C2(r,e,t,n,s){var i;let o=n.head-r.from,a=Jr.find(e,o,(i=n.bidiLevel)!==null&&i!==void 0?i:-1,n.assoc),l=e[a],c=l.side(s,t);if(o==c){let f=a+=s?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!s,t),c=l.side(s,t)}let u=Mt(r.text,o,l.forward(s,t));(u<l.from||u>l.to)&&(u=c),Am=r.text.slice(Math.min(o,u),Math.max(o,u));let h=a==(s?e.length-1:0)?null:e[a+(s?1:-1)];return h&&u==c&&h.level+(s?0:1)<l.level?re.cursor(h.side(!s,t)+r.from,h.forward(s,t)?1:-1,h.level):re.cursor(u+r.from,l.forward(s,t)?-1:1,l.level)}function Q2(r,e,t){for(let n=e;n<t;n++){let s=Pm(r.charCodeAt(n));if(s==1)return ws;if(s==2||s==4)return Iu}return ws}const _m=Qe.define(),Rm=Qe.define(),Bm=Qe.define(),Zm=Qe.define(),Nc=Qe.define(),Em=Qe.define(),Dm=Qe.define(),Vu=Qe.define(),zu=Qe.define(),Lm=Qe.define({combine:r=>r.some(e=>e)}),Xm=Qe.define({combine:r=>r.some(e=>e)}),Im=Qe.define();class Ns{constructor(e,t="nearest",n="nearest",s=5,i=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=s,this.xMargin=i,this.isSnapshot=o}map(e){return e.empty?this:new Ns(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Ns(re.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Vo=je.define({map:(r,e)=>r.map(e)}),Vm=je.define();function sr(r,e,t){let n=r.facet(Zm);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const On=Qe.define({combine:r=>r.length?r[0]:!0});let P2=0;const Ds=Qe.define({combine(r){return r.filter((e,t)=>{for(let n=0;n<t;n++)if(r[n].plugin==e.plugin)return!1;return!0})}});class bt{constructor(e,t,n,s,i){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=s,this.baseExtensions=i(this),this.extension=this.baseExtensions.concat(Ds.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(Ds.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:n,eventObservers:s,provide:i,decorations:o}=t||{};return new bt(P2++,e,n,s,a=>{let l=[];return o&&l.push(fl.of(c=>{let u=c.plugin(a);return u?o(u):Le.none})),i&&l.push(i(a)),l})}static fromClass(e,t){return bt.define((n,s)=>new e(n,s),t)}}class Al{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(sr(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){sr(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){sr(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const zm=Qe.define(),Nu=Qe.define(),fl=Qe.define(),Nm=Qe.define(),Wu=Qe.define(),wo=Qe.define(),Wm=Qe.define();function hd(r,e){let t=r.state.facet(Wm);if(!t.length)return t;let n=t.map(i=>i instanceof Function?i(r):i),s=[];return et.spans(n,e.from,e.to,{point(){},span(i,o,a,l){let c=i-e.from,u=o-e.from,h=s;for(let f=a.length-1;f>=0;f--,l--){let p=a[f].spec.bidiIsolate,g;if(p==null&&(p=Q2(e.text,c,u)),l>0&&h.length&&(g=h[h.length-1]).to==c&&g.direction==p)g.to=u,h=g.inner;else{let O={from:c,to:u,direction:p,inner:[]};h.push(O),h=O.inner}}}}),s}const qm=Qe.define();function qu(r){let e=0,t=0,n=0,s=0;for(let i of r.state.facet(qm)){let o=i(r);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:n,bottom:s}}const Bi=Qe.define();class wr{constructor(e,t,n,s){this.fromA=e,this.toA=t,this.fromB=n,this.toB=s}join(e){return new wr(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>n.toA)){if(s.toA<n.fromA)break;n=n.join(s),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let s=0,i=0,o=0;;){let a=s<e.length?e[s].fromB:1e9,l=i<t.length?t[i]:1e9,c=Math.min(a,l);if(c==1e9)break;let u=c+o,h=c,f=u;for(;;)if(i<t.length&&t[i]<=h){let p=t[i+1];i+=2,h=Math.max(h,p);for(let g=s;g<e.length&&e[g].fromB<=h;g++)o=e[g].toA-e[g].toB;f=Math.max(f,p+o)}else if(s<e.length&&e[s].fromB<=h){let p=e[s++];h=Math.max(h,p.toB),f=Math.max(f,p.toA),o=p.toA-p.toB}else break;n.push(new wr(u,f,c,h))}return n}}class Ra{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=$t.empty(this.startState.doc.length);for(let i of n)this.changes=this.changes.compose(i.changes);let s=[];this.changes.iterChangedRanges((i,o,a,l)=>s.push(new wr(i,o,a,l))),this.changedRanges=s}static create(e,t,n){return new Ra(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const T2=[];class kt{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return T2}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&u2(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let s of this.children){if(s==e)return n;n+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let n=qn(this.dom),s=this.length?e>0:t>0;return new Br(this.parent.dom,n+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof ml)return e;return null}static get(e){return e.cmTile}}class pl extends kt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,s,i=e?.node==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,s=n?n.nextSibling:t.firstChild,i&&s!=a.dom&&(i.written=!0),a.dom.parentNode==t)for(;s&&s!=a.dom;)s=dd(s);else t.insertBefore(a.dom,s);n=a.dom}for(s=n?n.nextSibling:t.firstChild,i&&s&&(i.written=!0);s;)s=dd(s);this.length=o}}function dd(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}class ml extends pl{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=kt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,s=0,i=0;;)if(s==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&i++,s=t.pop()}else{let o=n.children[s++];if(o instanceof vn)t.push(s),n=o,s=0;else{let a=i+o.length,l=e(o,i);if(l!==void 0)return l;i=a+o.breakAfter}}}resolveBlock(e,t){let n,s=-1,i,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(n=void 0)}(l<e||e==c&&(t<-1?a.length:a.covers(1)))&&(!n||!a.isWidget()&&n.isWidget())&&(n=a,s=e-l),(c>e||e==l&&(t>1?a.length:a.covers(-1)))&&(!i||!a.isWidget()&&i.isWidget())&&(i=a,o=e-l)}}),!n&&!i)throw new Error("No tile at position "+e);return n&&t<0||!i?{tile:n,offset:s}:{tile:i,offset:o}}}class vn extends pl{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new vn(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Js extends pl{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let s=new Js(t||document.createElement("div"),e);return(!t||!n)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,t,n){let s=null,i=-1,o=null,a=-1;function l(u,h){for(let f=0,p=0;f<u.children.length&&p<=h;f++){let g=u.children[f],O=p+g.length;O>=h&&(g.isComposite()?l(g,h-p):(!o||o.isHidden&&(t>0||n&&A2(o,g)))&&(O>h||g.flags&32)?(o=g,a=h-p):(p<h||g.flags&16&&!g.isHidden)&&(s=g,i=h-p)),p=O}}l(this,e);let c=(t<0?s:o)||s||o;return c?{tile:c,offset:c==s?i:a}:null}coordsIn(e,t){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t):M2(this)}domIn(e,t){let n=this.resolveInline(e,t);if(n){let{tile:s,offset:i}=n;if(this.dom.contains(s.dom))return s.isText()?new Br(s.dom,Math.min(s.dom.nodeValue.length,i)):s.domPosFor(i,s.flags&16?1:s.flags&32?-1:t);let o=n.tile.parent,a=!1;for(let l of o.children){if(a)return new Br(l.dom,0);l==n.tile&&(a=!0)}}return new Br(this.dom,0)}}function M2(r){let e=r.dom.lastChild;if(!e)return r.dom.getBoundingClientRect();let t=pa(e);return t[t.length-1]||null}function A2(r,e){let t=r.coordsIn(0,1),n=e.coordsIn(0,1);return t&&n&&n.top<t.bottom}class rr extends pl{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let n=new rr(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class ps extends kt{constructor(e,t){super(e,t.length),this.text=t}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,t){let n=this.dom.nodeValue.length;e>n&&(e=n);let s=e,i=e,o=0;e==0&&t<0||e==n&&t>=0?Me.chrome||Me.gecko||(e?(s--,o=1):i<n&&(i++,o=-1)):t<0?s--:i<n&&i++;let a=Ki(this.dom,s,i).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return Me.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?_a(l,o<0):l||null}static of(e,t){let n=new ps(t||document.createTextNode(e),e);return t||(n.flags|=2),n}}class Ss extends kt{constructor(e,t,n,s){super(e,t,s),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let s=this.widget.coordsAt(this.dom,e,t);if(s)return s;if(n)return _a(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let i=this.dom.getClientRects(),o=null;if(!i.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?i.length-1:0;o=i[l],!(e>0?l==0:l==i.length-1||o.top<o.bottom);l+=a?-1:1);return _a(o,!a)}}get overrideDOMText(){if(!this.length)return st.empty;let{root:e}=this;if(!e)return st.empty;let t=this.posAtStart;return e.view.state.doc.slice(t,t+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,t,n,s,i){return i||(i=e.toDOM(t),e.editable||(i.contentEditable="false")),new Ss(i,n,e,s)}}class Ba extends kt{constructor(e){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),super(t,0,e)}get isHidden(){return!0}get overrideDOMText(){return st.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class _2{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:s,index:i,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(s.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(i==s.children.length){if(!e&&!a.length)break;n&&n.leave(s),o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++}else{let l=s.children[i],c=l.breakAfter;(t>0?l.length<=e:l.length<e)&&(!n||n.skip(l,0,l.length)!==!1||!l.isComposite)?(o=!!c,i++,e-=l.length):(a.push({tile:s,index:i}),s=l,i=0,n&&l.isComposite()&&n.enter(l))}else if(i==s.length)o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++;else if(e){let l=Math.min(e,s.length-i);n&&n.skip(s,i,i+l),e-=l,i+=l}else break;return this.tile=s,this.index=i,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class R2{constructor(e,t,n,s){this.from=e,this.to=t,this.wrapper=n,this.rank=s}}class B2{constructor(e,t,n){this.cache=e,this.root=t,this.blockWrappers=n,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,t,n,s){var i;this.flushBuffer();let o=this.ensureMarks(t,n),a=o.lastChild;if(a&&a.isText()&&!(a.flags&8)&&a.length+e.length<512){this.cache.reused.set(a,2);let l=o.children[o.children.length-1]=new ps(a.dom,a.text+e);l.parent=o}else o.append(s||ps.of(e,(i=this.cache.find(ps))===null||i===void 0?void 0:i.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,t){let n=this.curLine;n.dom!=t.line.dom&&(n.setDOM(this.cache.reused.has(t.line)?_l(t.line.dom):t.line.dom),this.cache.reused.set(t.line,2));let s=n;for(let a=t.marks.length-1;a>=0;a--){let l=t.marks[a],c=s.lastChild;if(c instanceof rr&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(_l(l.dom)),s=c;else{if(this.cache.reused.get(l)){let h=kt.get(l.dom);h&&h.setDOM(_l(l.dom))}let u=rr.of(l.mark,l.dom);s.append(u),s=u}this.cache.reused.set(l,2)}let i=kt.get(e.text);i&&this.cache.reused.set(i,2);let o=new ps(e.text,e.text.nodeValue);o.flags|=8,s.append(o)}addInlineWidget(e,t,n){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let i=this.ensureMarks(t,n);!s&&!(e.flags&16)&&i.append(this.getBuffer(1)),i.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=jm);let s=Js.start(e,t||((n=this.cache.find(Js))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let s=this.curLine;for(let i=e.length-1;i>=0;i--){let o=e[i],a;if(t>0&&(a=s.lastChild)&&a instanceof rr&&a.mark.eq(o))s=a,t--;else{let l=rr.of(o,(n=this.cache.find(rr,c=>c.mark.eq(o)))===null||n===void 0?void 0:n.dom);s.append(l),s=l,t=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!fd(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Me.ios&&fd(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Rl,0,32)||new Ss(Rl.toDOM(),0,Rl,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let t=new R2(e.from,e.to,e.value,e.rank),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-t.rank||this.wrappers[n-1].to-t.to)<0;)n--;this.wrappers.splice(n,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let s=t.lastChild;if(n.from<this.pos&&s instanceof vn&&s.wrapper.eq(n.wrapper))t=s;else{let i=vn.of(n.wrapper,(e=this.cache.find(vn,o=>o.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(i),t=i}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Ba,void 0,1);return n&&(n.flags=t),n||new Ba(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class Z2{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:i,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=s;let a=this.textOff=Math.min(e,s.length);return i?null:s.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}}const Za=[Ss,Js,ps,rr,Ba,vn,ml];for(let r=0;r<Za.length;r++)Za[r].bucket=r;class E2{constructor(e){this.view=e,this.buckets=Za.map(()=>[]),this.index=Za.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let s=e.bucket,i=this.buckets[s],o=this.index[s];for(let a=i.length-1;a>=0;a--){let l=(a+o)%i.length,c=i[l];if((!t||t(c))&&!this.reused.has(c))return i.splice(l,1),l<o&&this.index[s]--,this.reused.set(c,n),c}return null}findWidget(e,t,n){let s=this.buckets[0];if(s.length)for(let i=0,o=0;;i++){if(i==s.length){if(o)return null;o=1,i=0}let a=s[i];if(!this.reused.has(a)&&(o==0?a.widget.compare(e):a.widget.constructor==e.constructor&&e.updateDOM(a.dom,this.view)))return s.splice(i,1),i<this.index[0]&&this.index[0]--,a.widget==e&&a.length==t&&(a.flags&497)==n?(this.reused.set(a,1),a):(this.reused.set(a,2),new Ss(a.dom,t,e,a.flags&-498|n))}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,t=2){if(!this.reused.has(e))return this.reused.set(e,t),e.dom}clear(){for(let e=0;e<this.buckets.length;e++)this.buckets[e].length=this.index[e]=0}}class D2{constructor(e,t,n,s,i){this.view=e,this.decorations=s,this.disallowBlockEffectsFor=i,this.openWidget=!1,this.openMarks=0,this.cache=new E2(e),this.text=new Z2(e.state.doc),this.builder=new B2(this.cache,new ml(e,e.contentDOM),et.iter(n)),this.cache.reused.set(t,2),this.old=new _2(t),this.reuseWalker={skip:(o,a,l)=>{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let s=0,i=0,o=0;;){let a=o<e.length?e[o++]:null,l=a?a.fromA:this.old.root.length;if(l>s){let c=l-s;this.preserve(c,!o,!a),s=l,i+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA<t.range.toA?1:-1),this.emit(i,t.range.fromB),this.cache.clear(),this.builder.addComposition(t,n),this.text.skip(t.range.toB-t.range.fromB),this.forward(t.range.fromA,a.toA),this.emit(t.range.toB,a.toB)):(this.forward(a.fromA,a.toA),this.emit(i,a.toB)),i=a.toB,s=a.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,n){let s=I2(this.old),i=this.openMarks;this.old.advance(e,n?1:-1,{skip:(o,a,l)=>{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a<o.length?Ss.of(o.widget,this.view,l-a,o.flags&496,this.cache.maybeReuse(o)):this.cache.reuse(o);c.flags&256?(c.flags&=-2,this.builder.addBlockWidget(c)):(this.builder.ensureLine(null),this.builder.addInlineWidget(c,s,i),i=s.length)}else if(o.isText())this.builder.ensureLine(null),!a&&l==o.length?this.builder.addText(o.text,s,i,this.cache.reuse(o)):(this.cache.add(o),this.builder.addText(o.text.slice(a,l),s,i)),i=s.length;else if(o.isLine())o.flags&=-2,this.cache.reused.set(o,1),this.builder.addLine(o);else if(o instanceof Ba)this.cache.add(o);else if(o instanceof rr)this.builder.ensureLine(null),this.builder.addMark(o,s,i),this.cache.reused.set(o,1),i=s.length;else return!1;this.openWidget=!1},enter:o=>{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof rr&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=i=0):o instanceof rr&&(s.shift(),i=Math.min(i,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,s=this.builder,i=0,o=et.spans(this.decorations,e,t,{point:(a,l,c,u,h,f)=>{if(c instanceof ks){if(this.disallowBlockEffectsFor[f]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(i=u.length,h>u.length)s.continueWidget(l-a);else{let p=c.widget||(c.block?ei.block:ei.inline),g=L2(c),O=this.cache.findWidget(p,l-a,g)||Ss.of(p,this.view,l-a,g);c.block?(c.startSide>0&&s.addLineStartIfNotCovered(n),s.addBlockWidget(O)):(s.ensureLine(n),s.addInlineWidget(O,u,h))}n=null}else n=X2(n,c);l>a&&this.text.skip(l-a)},span:(a,l,c,u)=>{for(let h=a;h<l;){let f=this.text.next(Math.min(512,l-h));f==null?(s.addLineStartIfNotCovered(n),s.addBreak(),h++):(s.ensureLine(n),s.addText(f,c,h==a?u:c.length),h+=f.length),n=null}}});s.addLineStartIfNotCovered(n),this.openWidget=o>i,this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let s=e.parentNode;;s=s.parentNode){let i=kt.get(s);if(s==this.view.contentDOM)break;i instanceof rr?t.push(i):i?.isLine()?n=i:i instanceof vn||(s.nodeName=="DIV"&&!n&&s!=this.view.contentDOM?n=new Js(s,jm):n||t.push(rr.of(new yo({tagName:s.nodeName.toLowerCase(),attributes:h2(s)}),s)))}return{line:n,marks:t}}}function fd(r,e){let t=n=>{for(let s of n.children)if((e?s.isText():s.length)||t(s))return!0;return!1};return t(r)}function L2(r){let e=r.isReplace?(r.startSide<0?64:0)|(r.endSide>0?128:0):r.startSide>0?32:16;return r.block&&(e|=256),e}const jm={class:"cm-line"};function X2(r,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(r||(r={class:"cm-line"}),t&&Lu(t,r),n&&(r.class+=" "+n)),r}function I2(r){let e=[];for(let t=r.parents.length;t>1;t--){let n=t==r.parents.length?r.tile:r.parents[t].tile;n instanceof rr&&e.push(n.mark)}return e}function _l(r){let e=kt.get(r);return e&&e.setDOM(r.cloneNode()),r}class ei extends an{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}ei.inline=new ei("span");ei.block=new ei("div");const Rl=new class extends an{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class pd{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Le.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new ml(e,e.contentDOM),this.updateInner([new wr(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:u,toA:h})=>h<this.minWidthFrom||u>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!U2(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let i=s>-1?z2(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:u,to:h}=this.hasComposition;n=new wr(u,h,e.changes.mapPos(u,-1),e.changes.mapPos(h,1)).addToSet(n.slice())}this.hasComposition=i?{from:i.range.fromB,to:i.range.toB}:null,(Me.ie||Me.chrome)&&!i&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=q2(o,this.decorations,e.changes);l.length&&(n=wr.extendWithRanges(n,l));let c=Y2(a,this.blockWrappers,e.changes);return c.length&&(n=wr.extendWithRanges(n,c)),i&&!n.some(u=>u.fromA<=i.range.fromA&&u.toA>=i.range.toA)&&(n=i.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,i),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,a=new D2(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=a.run(e,t),Wc(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=Me.chrome||Me.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(i),i&&(i.written||n.selectionRange.focusNode!=i.node||!this.tile.dom.contains(i.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let i of this.tile.children)i.isWidget()&&i.widget instanceof Bl&&s.push(i.dom);n.updateGaps(s)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let n of t.effects)n.is(Vm)&&(this.editContextFormatting=n.value)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:n}=this.tile,s=this.view.root.activeElement,i=s==n,o=!i&&!(this.view.state.facet(On)||n.tabIndex>-1)&&Vi(n,this.view.observer.selectionRange)&&!(s&&n.contains(s));if(!(i||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,u;if(l.empty?u=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(u=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),Me.gecko&&l.empty&&!this.hasComposition&&V2(c)){let f=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(f,c.node.childNodes[c.offset]||null)),c=u=new Br(f,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!zi(c.node,c.offset,h.anchorNode,h.anchorOffset)||!zi(u.node,u.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{Me.android&&Me.chrome&&n.contains(h.focusNode)&&F2(h.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let f=Hi(this.view.root);if(f)if(l.empty){if(Me.gecko){let p=N2(c.node,c.offset);if(p&&p!=3){let g=(p==1?$m:Cm)(c.node,c.offset);g&&(c=new Br(g.node,g.offset))}}f.collapse(c.node,c.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(c.node,c.offset);try{f.extend(u.node,u.offset)}catch{}}else{let p=document.createRange();l.anchor>l.head&&([c,u]=[u,c]),p.setEnd(u.node,u.offset),p.setStart(c.node,c.offset),f.removeAllRanges(),f.addRange(p)}o&&this.view.root.activeElement==n&&(n.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(c,u)),this.impreciseAnchor=c.precise?null:new Br(h.anchorNode,h.anchorOffset),this.impreciseHead=u.precise?null:new Br(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&zi(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Hi(e.root),{anchorNode:s,anchorOffset:i}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(u.node,u.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(s,i)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=n.posAtStart;if(n.isComposite()){let i;if(e==n.dom)i=n.dom.childNodes[t];else{let o=wn(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==n.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?i=e:i=e.nextSibling}if(i==n.dom.firstChild)return s;for(;i&&!kt.get(i);)i=i.nextSibling;if(!i)return s+n.length;for(let o=0,a=s;;o++){let l=n.children[o];if(l.dom==i)return a;a+=l.length+l.breakAfter}}else return n.isText()?e==n.dom?s+t:s+(t?n.length:0):s}domAtPos(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(e,t):n.domIn(s,t)}inlineDOMNearPos(e,t){let n,s=-1,i=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,u)=>{if(c.isWidget()){if(c.flags&32&&u>=e)return!0;c.flags&16&&(i=!0)}else{let h=u+c.length;if(u<=e&&(n=c,s=e-u,i=h<e),h>=e&&!o&&(o=c,a=e-u,l=u>e),u>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(i&&o?n=null:l&&n&&(o=null),n&&t<0||!o?n.domIn(s,t):o.domIn(a,t))}coordsAt(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof Bl?null:n.coordsInWidget(s,t,!0):n.coordsIn(s,t)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function s(i,o){if(i.isComposite())for(let a of i.children){if(a.length>=o){let l=s(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(i.isText()&&o<i.length){let a=Mt(i.text,o);if(a==o)return null;let l=Ki(i.dom,o,a).getClientRects();for(let c=0;c<l.length;c++){let u=l[c];if(c==l.length-1||u.top<u.bottom&&u.left<u.right)return u}}return null}return s(t,n)}measureVisibleLineHeights(e){let t=[],{from:n,to:s}=e,i=this.view.contentDOM.clientWidth,o=i>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==dt.LTR,c=0,u=(h,f,p)=>{for(let g=0;g<h.children.length&&!(f>s);g++){let O=h.children[g],x=f+O.length,b=O.dom.getBoundingClientRect(),{height:k}=b;if(p&&!g&&(c+=b.top-p.top),O instanceof vn)x>n&&u(O,f,b);else if(f>=n&&(c>0&&t.push(-c),t.push(k+c),c=0,o)){let $=O.dom.lastChild,P=$?pa($):[];if(P.length){let R=P[P.length-1],V=l?R.right-b.left:b.right-R.left;V>a&&(a=V,this.minWidth=i,this.minWidthFrom=f,this.minWidthTo=x)}}p&&g==h.children.length-1&&(c+=p.bottom-b.bottom),f=x+O.breakAfter}};return u(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?dt.RTL:dt.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let u=pa(c.dom);if(u.length!=1)return;a+=u[0].width,l=u[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),n,s,i;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=pa(t.firstChild)[0];n=t.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,i=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:s,textHeight:i}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,s=0;;s++){let i=s==t.viewports.length?null:t.viewports[s],o=i?i.from-1:this.view.state.doc.length;if(o>n){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(Le.replace({widget:new Bl(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!i)break;n=i.to+1}return Le.set(e)}updateDeco(){let e=1,t=this.view.state.facet(fl).map(i=>(this.dynamicDecorationMap[e++]=typeof i=="function")?i(this.view):i),n=!1,s=this.view.state.facet(Wu).map((i,o)=>{let a=typeof i=="function";return a&&(n=!0),a?i(this.view):i});for(s.length&&(this.dynamicDecorationMap[e++]=n,t.push(et.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(Nm).map(i=>typeof i=="function"?i(this.view):i)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Im))try{if(c(this.view,e.range,e))return!0}catch(u){sr(this.view.state,u,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!n)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,s.left),top:Math.min(n.top,s.top),right:Math.max(n.right,s.right),bottom:Math.max(n.bottom,s.bottom)});let i=qu(this.view),o={left:n.left-i.left,top:n.top-i.top,right:n.right+i.right,bottom:n.bottom+i.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(p2(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==dt.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let c=this.view.docView.lineAt(t.head,1);c&&c.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(e){let t=n=>n.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Wc(this.tile)}}function Wc(r,e){let t=e?.get(r);if(t!=1){t==null&&r.destroy();for(let n of r.children)Wc(n,e)}}function V2(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}function Ym(r,e){let t=r.observer.selectionRange;if(!t.focusNode)return null;let n=$m(t.focusNode,t.focusOffset),s=Cm(t.focusNode,t.focusOffset),i=n||s;if(s&&n&&s.node!=n.node){let a=kt.get(s.node);if(!a||a.isText()&&a.text!=s.node.nodeValue)i=s;else if(r.docView.lastCompositionAfterCursor){let l=kt.get(n.node);!l||l.isText()&&l.text!=n.node.nodeValue||(i=s)}}if(r.docView.lastCompositionAfterCursor=i!=n,!i)return null;let o=e-i.offset;return{from:o,to:o+i.node.nodeValue.length,node:i.node}}function z2(r,e,t){let n=Ym(r,t);if(!n)return null;let{node:s,from:i,to:o}=n,a=s.nodeValue;if(/[\n\r]/.test(a)||r.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc;return{range:new wr(l.mapPos(i),l.mapPos(o),i,o),text:s}}function N2(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e<r.childNodes.length&&r.childNodes[e].contentEditable=="false"?2:0)}let W2=class{constructor(){this.changes=[]}compareRange(e,t){Vs(e,t,this.changes)}comparePoint(e,t){Vs(e,t,this.changes)}boundChange(e){Vs(e,e,this.changes)}};function q2(r,e,t){let n=new W2;return et.compare(r,e,t,n),n.changes}class j2{constructor(){this.changes=[]}compareRange(e,t){Vs(e,t,this.changes)}comparePoint(){}boundChange(e){Vs(e,e,this.changes)}}function Y2(r,e,t){let n=new j2;return et.compare(r,e,t,n),n.changes}function F2(r,e){for(let t=r;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function U2(r,e){let t=!1;return e&&r.iterChangedRanges((n,s)=>{n<e.to&&s>e.from&&(t=!0)}),t}class Bl extends an{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function G2(r,e,t=1){let n=r.charCategorizer(e),s=r.doc.lineAt(e),i=e-s.from;if(s.length==0)return re.cursor(e);i==0?t=1:i==s.length&&(t=-1);let o=i,a=i;t<0?o=Mt(s.text,i,!1):a=Mt(s.text,i);let l=n(s.text.slice(o,a));for(;o>0;){let c=Mt(s.text,o,!1);if(n(s.text.slice(c,o))!=l)break;o=c}for(;a<s.length;){let c=Mt(s.text,a);if(n(s.text.slice(a,c))!=l)break;a=c}return re.range(o+s.from,a+s.from)}function H2(r,e,t,n,s){let i=Math.round((n-e.left)*r.defaultCharacterWidth);if(r.lineWrapping&&t.height>r.defaultLineHeight*1.5){let a=r.viewState.heightOracle.textHeight,l=Math.floor((s-t.top-(r.defaultLineHeight-a)*.5)/a);i+=l*r.viewState.heightOracle.lineLength}let o=r.state.sliceDoc(t.from,t.to);return t.from+_c(o,i,r.state.tabSize)}function qc(r,e,t){let n=r.lineBlockAt(e);if(Array.isArray(n.type)){let s;for(let i of n.type){if(i.from>e)break;if(!(i.to<e)){if(i.from<e&&i.to>e)return i;(!s||i.type==Xt.Text&&(s.type!=i.type||(t<0?i.from<e:i.to>e)))&&(s=i)}}return s||n}return n}function K2(r,e,t,n){let s=qc(r,e.head,e.assoc||-1),i=!n||s.type!=Xt.Text||!(r.lineWrapping||s.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(i){let o=r.dom.getBoundingClientRect(),a=r.textDirectionAt(s.from),l=r.posAtCoords({x:t==(a==dt.LTR)?o.right-1:o.left+1,y:(i.top+i.bottom)/2});if(l!=null)return re.cursor(l,t?-1:1)}return re.cursor(t?s.to:s.from,t?-1:1)}function md(r,e,t,n){let s=r.state.doc.lineAt(e.head),i=r.bidiSpans(s),o=r.textDirectionAt(s.from);for(let a=e,l=null;;){let c=C2(s,i,o,a,t),u=Am;if(!c){if(s.number==(t?r.state.doc.lines:1))return a;u=`
18
- `,s=r.state.doc.line(s.number+(t?1:-1)),i=r.bidiSpans(s),c=r.visualLineSide(s,!t)}if(l){if(!l(u))return a}else{if(!n)return c;l=n(u)}a=c}}function J2(r,e,t){let n=r.state.charCategorizer(e),s=n(t);return i=>{let o=n(i);return s==mt.Space&&(s=o),s==o}}function e$(r,e,t,n){let s=e.head,i=t?1:-1;if(s==(t?r.state.doc.length:0))return re.cursor(s,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(s,(e.empty?e.assoc:0)||(t?1:-1)),u=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=i<0?c.top:c.bottom;else{let g=r.viewState.lineBlockAt(s);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(s-g.from))),a=(i<0?g.top:g.bottom)+u}let h=l.left+o,f=n??r.viewState.heightOracle.textHeight>>1,p=jc(r,{x:h,y:a+f*i},!1,i);return re.cursor(p.pos,p.assoc,void 0,o)}function Ni(r,e,t){for(;;){let n=0;for(let s of r)s.between(e-1,e+1,(i,o,a)=>{if(e>i&&e<o){let l=n||t||(e-i<o-e?-1:1);e=l<0?i:o,n=l}});if(!n)return e}}function Fm(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let s=e.ranges[n],i=null;if(s.empty){let o=Ni(r,s.from,0);o!=s.from&&(i=re.cursor(o,-1))}else{let o=Ni(r,s.from,-1),a=Ni(r,s.to,1);(o!=s.from||a!=s.to)&&(i=re.range(s.from==s.anchor?o:a,s.from==s.head?o:a))}i&&(t||(t=e.ranges.slice()),t[n]=i)}return t?re.create(t,e.mainIndex):e}function Zl(r,e,t){let n=Ni(r.state.facet(wo).map(s=>s(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:re.cursor(n,n<t.from?1:-1)}class Kr{constructor(e,t){this.pos=e,this.assoc=t}}function jc(r,e,t,n){let s=r.contentDOM.getBoundingClientRect(),i=s.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-i,c;for(;;){if(l<0)return new Kr(0,1);if(l>r.viewState.docHeight)return new Kr(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==Xt.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let f=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(f&&(n<0?f.top<=l+i:f.bottom>=l+i))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==Xt.Text){let h=H2(r,s,c,o,a);return new Kr(h,h==c.from?1:-1)}}if(c.type!=Xt.Text)return l<(c.top+c.bottom)/2?new Kr(c.from,1):new Kr(c.to,-1);let u=r.docView.lineAt(c.from,2);return(!u||u.length!=c.length)&&(u=r.docView.lineAt(c.from,-2)),new t$(r,o,a,r.textDirectionAt(c.from)).scanTile(u,c.from)}class t${constructor(e,t,n,s){this.view=e,this.x=t,this.y=n,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Jr.find(s,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Jr.find(s,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:s}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+s.from<t)}scan(e,t){let n=0,s=e.length-1,i=new Set,o=this.bidiIn(e[0],e[s]),a,l,c=-1,u=1e9,h;e:for(;n<s;){let p=s-n,g=n+s>>1;t:if(i.has(g)){let x=n+Math.floor(Math.random()*p);for(let b=0;b<p;b++){if(!i.has(x)){g=x;break t}x++,x==s&&(x=n)}break e}i.add(g);let O=t(g);if(O)for(let x=0;x<O.length;x++){let b=O[x],k=0;if(b.bottom<this.y)(!a||a.bottom<b.bottom)&&(a=b),k=1;else if(b.top>this.y)(!l||l.top>b.top)&&(l=b),k=-1;else{let $=b.left>this.x?this.x-b.left:b.right<this.x?this.x-b.right:0,P=Math.abs($);P<u&&(c=g,u=P,h=b),$&&(k=$<0==(this.baseDir==dt.LTR)?-1:1)}k==-1&&(!o||this.baseDirAt(e[g],1))?s=g:k==1&&(!o||this.baseDirAt(e[g+1],-1))&&(n=g+1)}}if(!h){let p=a&&(!l||this.y-a.bottom<l.top-this.y)?a:l;return this.y=(p.top+p.bottom)/2,this.scan(e,t)}let f=(o?this.dirAt(e[c],1):this.baseDir)==dt.LTR;return{i:c,after:this.x>(h.left+h.right)/2==f}}scanText(e,t){let n=[];for(let i=0;i<e.length;i=Mt(e.text,i))n.push(t+i);n.push(t+e.length);let s=this.scan(n,i=>{let o=n[i]-t,a=n[i+1]-t;return Ki(e.dom,o,a).getClientRects()});return s.after?new Kr(n[s.i+1],-1):new Kr(n[s.i],1)}scanTile(e,t){if(!e.length)return new Kr(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let s=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Ki(l.dom,0,l.length)).getClientRects()}),i=e.children[s.i],o=n[s.i];return i.isText()?this.scanText(i,o):i.isComposite()?this.scanTile(i,o):s.after?new Kr(n[s.i+1],-1):new Kr(o,1)}}const Zi="￿";class r${constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(tt.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Zi}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s);let i=this.text.length;this.readNode(s);let o=kt.get(s),a=s.nextSibling;if(a==t){o?.breakAfter&&!a&&n!=this.view.contentDOM&&this.lineBreak();break}let l=kt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:Aa(s))||Aa(a)&&(s.nodeName!="BR"||o?.isWidget())&&this.text.length>i)&&!s$(a,t)&&this.lineBreak(),s=a}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let i=-1,o=1,a;if(this.lineSeparator?(i=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=s.exec(t))&&(i=a.index,o=a[0].length),this.append(t.slice(n,i<0?t.length:i)),i<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);n=i+o}}readNode(e){let t=kt.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let s=n.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(n$(e,n.node,n.offset)?t:0))}}function n$(r,e,t){for(;;){if(!e||t<wn(e))return!1;if(e==r)return!0;t=qn(e)+1,e=e.parentNode}}function s$(r,e){let t;for(;!(r==e||!r);r=r.nextSibling){let n=kt.get(r);if(!n?.isWidget())return!1;n&&(t||(t=[])).push(n)}if(t)for(let n of t){let s=n.overrideDOMText;if(s?.length)return!1}return!0}class gd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class i${constructor(e,t,n,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:i,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Um(e.docView.tile,t,n,0))){let a=i||o?[]:a$(e),l=new r$(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=l$(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=i&&i.node==a.focusNode&&i.offset==a.focusOffset||!Xc(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!Xc(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),u=e.viewport;if((Me.ios||Me.chrome)&&e.state.selection.main.empty&&l!=c&&(u.from>0||u.to<e.state.doc.length)){let h=Math.min(l,c),f=Math.max(l,c),p=u.from-h,g=u.to-f;(p==0||p==1||h==0)&&(g==0||g==-1||f==e.state.doc.length)&&(l=0,c=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(re.range(c,l)):this.newSel=re.single(c,l)}}}function Um(r,e,t,n){if(r.isComposite()){let s=-1,i=-1,o=-1,a=-1;for(let l=0,c=n,u=n;l<r.children.length;l++){let h=r.children[l],f=c+h.length;if(c<e&&f>t)return Um(h,e,t,c);if(f>=e&&s==-1&&(s=l,i=c),c>t&&h.dom.parentNode==r.dom){o=l,a=u;break}u=f,c=f+h.breakAfter}return{from:i,to:a<0?n+r.length:a,startDOM:(s?r.children[s-1].dom.nextSibling:null)||r.dom.firstChild,endDOM:o<r.children.length&&o>=0?r.children[o].dom:null}}else return r.isText()?{from:n,to:n+r.length,startDOM:r.dom,endDOM:r.dom.nextSibling}:null}function Gm(r,e){let t,{newSel:n}=e,s=r.state.selection.main,i=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=s.from,c=null;(i===8||Me.android&&e.text.length<a-o)&&(l=s.to,c="end");let u=Hm(r.state.doc.sliceString(o,a,Zi),e.text,l-o,c);u&&(Me.chrome&&i==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==Zi+Zi&&u.toB--,t={from:o+u.from,to:o+u.toA,insert:st.of(e.text.slice(u.from,u.toB).split(Zi))})}else n&&(!r.hasFocus&&r.state.facet(On)||Ea(n,s))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!s.empty&&n&&n.main.empty?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,s.to)}:(Me.mac||Me.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&r.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=re.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:st.of([t.insert.toString().replace("."," ")])}):t&&t.from>=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,t.from).append(t.insert).append(r.state.doc.slice(t.to,s.to))}:r.state.doc.lineAt(s.from).to<s.to&&r.docView.lineHasWidget(s.to)&&r.inputState.insertingTextAt>Date.now()-50?t={from:s.from,to:s.to,insert:r.state.toText(r.inputState.insertingText)}:Me.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==`
19
- `&&r.lineWrapping&&(n&&(n=re.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:st.of([" "])}),t)return ju(r,t,n,i);if(n&&!Ea(n,s)){let o=!1,a="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(o=!0),a=r.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=Fm(r.state.facet(wo).map(l=>l(r)),n))),r.dispatch({selection:n,scrollIntoView:o,userEvent:a}),!0}else return!1}function ju(r,e,t,n=-1){if(Me.ios&&r.inputState.flushIOSKey(e))return!0;let s=r.state.selection.main;if(Me.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&r.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&zs(r.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>s.head)&&zs(r.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&zs(r.contentDOM,"Delete",46)))return!0;let i=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=o$(r,e,t));return r.state.facet(Em).some(l=>l(r,e.from,e.to,i,a))||r.dispatch(a()),!0}function o$(r,e,t){let n,s=r.state,i=s.selection.main,o=-1;if(e.from==e.to&&e.from<i.from||e.from>i.to){let l=e.from<i.from?-1:1,c=l<0?i.from:i.to,u=Ni(s.facet(wo).map(h=>h(r)),c,l);e.from==u&&(o=u)}if(o>-1)n={changes:e,selection:re.cursor(e.from+e.insert.length,-1)};else if(e.from>=i.from&&e.to<=i.to&&e.to-e.from>=(i.to-i.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=i.from<e.from?s.sliceDoc(i.from,e.from):"",c=i.to>e.to?s.sliceDoc(e.to,i.to):"";n=s.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=s.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(s.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=i.to+10&&e.to>=i.to-10){let u=r.state.sliceDoc(e.from,e.to),h,f=t&&Ym(r,t.main.head);if(f){let g=e.insert.length-(e.to-e.from);h={from:f.from,to:f.to-g}}else h=r.state.doc.lineAt(i.head);let p=i.to-e.to;n=s.changeByRange(g=>{if(g.from==i.from&&g.to==i.to)return{changes:l,range:c||g.map(l)};let O=g.to-p,x=O-u.length;if(r.state.sliceDoc(x,O)!=u||O>=h.from&&x<=h.to)return{range:g};let b=s.changes({from:x,to:O,insert:e.insert}),k=g.to-i.to;return{changes:b,range:c?re.range(Math.max(0,c.anchor+k),Math.max(0,c.head+k)):g.map(b)}})}else n={changes:l,selection:c&&s.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),s.update(n,{userEvent:a,scrollIntoView:!0})}function Hm(r,e,t,n){let s=Math.min(r.length,e.length),i=0;for(;i<s&&r.charCodeAt(i)==e.charCodeAt(i);)i++;if(i==s&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,i-Math.min(o,a));t-=o+l-i}if(o<i&&r.length<e.length){let l=t<=i&&t>=o?i-t:0;i-=l,a=i+(a-o),o=i}else if(a<i){let l=t<=i&&t>=a?i-t:0;i-=l,o=i+(o-a),a=i}return{from:i,toA:o,toB:a}}function a$(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}=r.observer.selectionRange;return t&&(e.push(new gd(t,n)),(s!=t||i!=n)&&e.push(new gd(s,i))),e}function l$(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?re.single(t+e,n+e):null}function Ea(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}class c${setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Me.safari&&e.contentDOM.addEventListener("input",()=>null),Me.gecko&&S$(e.contentDOM.ownerDocument)}handleEvent(e){!O$(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let s of n.observers)s(this.view,t);for(let s of n.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=u$(e),n=this.handlers,s=this.view.contentDOM;for(let i in t)if(i!="scroll"){let o=!t[i].handlers.length,a=n[i];a&&o!=!a.handlers.length&&(s.removeEventListener(i,this.handleEvent),a=null),a||s.addEventListener(i,this.handleEvent,{passive:o})}for(let i in n)i!="scroll"&&!t[i]&&s.removeEventListener(i,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Jm.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Me.android&&Me.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return Me.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=Km.find(n=>n.keyCode==e.keyCode))&&!e.ctrlKey||h$.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,zs(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:Me.safari&&!Me.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Od(r,e){return(t,n)=>{try{return e.call(r,n,t)}catch(s){sr(t.state,s)}}}function u$(r){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of r){let s=n.spec,i=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(i)for(let a in i){let l=i[a];l&&t(a).handlers.push(Od(n.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(Od(n.value,l))}}for(let n in Er)t(n).handlers.push(Er[n]);for(let n in Tr)t(n).observers.push(Tr[n]);return e}const Km=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],h$="dthko",Jm=[16,17,18,20,91,92,224,225],zo=6;function No(r){return Math.max(0,r)*.7+8}function d$(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}class f${constructor(e,t,n,s){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=m2(e.contentDOM),this.atoms=e.state.facet(wo).map(o=>o(e));let i=e.contentDOM.ownerDocument;i.addEventListener("mousemove",this.move=this.move.bind(this)),i.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(tt.allowMultipleSelections)&&p$(e,t),this.dragging=g$(e,t)&&rg(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&d$(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,s=0,i=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:i,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=qu(this.view);e.clientX-l.left<=s+zo?t=-No(s-e.clientX):e.clientX+l.right>=o-zo&&(t=No(e.clientX-o)),e.clientY-l.top<=i+zo?n=-No(i-e.clientY):e.clientY+l.bottom>=a-zo&&(n=No(e.clientY-a)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=Fm(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function p$(r,e){let t=r.state.facet(_m);return t.length?t[0](e):Me.mac?e.metaKey:e.ctrlKey}function m$(r,e){let t=r.state.facet(Rm);return t.length?t[0](e):Me.mac?!e.altKey:!e.ctrlKey}function g$(r,e){let{main:t}=r.state.selection;if(t.empty)return!1;let n=Hi(r.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let i=0;i<s.length;i++){let o=s[i];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function O$(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=r.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=kt.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}const Er=Object.create(null),Tr=Object.create(null),eg=Me.ie&&Me.ie_version<15||Me.ios&&Me.webkit_version<604;function v$(r){let e=r.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{r.focus(),t.remove(),tg(r,t.value)},50)}function gl(r,e,t){for(let n of r.facet(e))t=n(t,r);return t}function tg(r,e){e=gl(r.state,Vu,e);let{state:t}=r,n,s=1,i=t.toText(e),o=i.lines==t.selection.ranges.length;if(Yc!=null&&t.selection.ranges.every(l=>l.empty)&&Yc==i.toString()){let l=-1;n=t.changeByRange(c=>{let u=t.doc.lineAt(c.from);if(u.from==l)return{range:c};l=u.from;let h=t.toText((o?i.line(s++).text:e)+t.lineBreak);return{changes:{from:u.from,insert:h},range:re.cursor(c.from+h.length)}})}else o?n=t.changeByRange(l=>{let c=i.line(s++);return{changes:{from:l.from,to:l.to,insert:c.text},range:re.cursor(l.from+c.length)}}):n=t.replaceSelection(i);r.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Tr.scroll=r=>{r.inputState.lastScrollTop=r.scrollDOM.scrollTop,r.inputState.lastScrollLeft=r.scrollDOM.scrollLeft};Er.keydown=(r,e)=>(r.inputState.setSelectionOrigin("select"),e.keyCode==27&&r.inputState.tabFocusMode!=0&&(r.inputState.tabFocusMode=Date.now()+2e3),!1);Tr.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};Tr.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};Er.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of r.state.facet(Bm))if(t=n(r,e),t)break;if(!t&&e.button==0&&(t=x$(r,e)),t){let n=!r.hasFocus;r.inputState.startMouseSelection(new f$(r,e,t,n)),n&&r.observer.ignore(()=>{wm(r.contentDOM);let i=r.root.activeElement;i&&!i.contains(r.contentDOM)&&i.blur()});let s=r.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else r.inputState.setSelectionOrigin("select.pointer");return!1};function vd(r,e,t,n){if(n==1)return re.cursor(e,t);if(n==2)return G2(r.state,e,t);{let s=r.docView.lineAt(e,t),i=r.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:i.from,a=s?s.posAtEnd:i.to;return a<r.state.doc.length&&a==i.to&&a++,re.range(o,a)}}const b$=Me.ie&&Me.ie_version<=11;let bd=null,xd=0,yd=0;function rg(r){if(!b$)return r.detail;let e=bd,t=yd;return bd=r,yd=Date.now(),xd=!e||t>Date.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?(xd+1)%3:1}function x$(r,e){let t=r.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=rg(e),s=r.state.selection;return{update(i){i.docChanged&&(t.pos=i.changes.mapPos(t.pos),s=s.map(i.changes))},get(i,o,a){let l=r.posAndSideAtCoords({x:i.clientX,y:i.clientY},!1),c,u=vd(r,l.pos,l.assoc,n);if(t.pos!=l.pos&&!o){let h=vd(r,t.pos,t.assoc,n),f=Math.min(h.from,u.from),p=Math.max(h.to,u.to);u=f<u.from?re.range(f,p):re.range(p,f)}return o?s.replaceRange(s.main.extend(u.from,u.to)):a&&n==1&&s.ranges.length>1&&(c=y$(s,l.pos))?c:a?s.addRange(u):re.create([u])}}}function y$(r,e){for(let t=0;t<r.ranges.length;t++){let{from:n,to:s}=r.ranges[t];if(n<=e&&s>=e)return re.create(r.ranges.slice(0,t).concat(r.ranges.slice(t+1)),r.mainIndex==t?0:r.mainIndex-(r.mainIndex>t?1:0))}return null}Er.dragstart=(r,e)=>{let{selection:{main:t}}=r.state;if(e.target.draggable){let s=r.docView.tile.nearest(e.target);if(s&&s.isWidget()){let i=s.posAtStart,o=i+s.length;(i>=t.to||o<=t.from)&&(t=re.range(i,o))}}let{inputState:n}=r;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",gl(r.state,zu,r.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Er.dragend=r=>(r.inputState.draggedContent=null,!1);function kd(r,e,t,n){if(t=gl(r.state,Vu,t),!t)return;let s=r.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:i}=r.inputState,o=n&&i&&m$(r,e)?{from:i.from,to:i.to}:null,a={from:s,insert:t},l=r.state.changes(o?[o,a]:a);r.focus(),r.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),r.inputState.draggedContent=null}Er.drop=(r,e)=>{if(!e.dataTransfer)return!1;if(r.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),s=0,i=()=>{++s==t.length&&kd(r,e,n.filter(o=>o!=null).join(r.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=i,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),i()},a.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return kd(r,e,n,!0),!0}return!1};Er.paste=(r,e)=>{if(r.state.readOnly)return!0;r.observer.flush();let t=eg?null:e.clipboardData;return t?(tg(r,t.getData("text/plain")||t.getData("text/uri-list")),!0):(v$(r),!1)};function k$(r,e){let t=r.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),r.focus()},50)}function w$(r){let e=[],t=[],n=!1;for(let s of r.selection.ranges)s.empty||(e.push(r.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:i}of r.selection.ranges){let o=r.doc.lineAt(i);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(r.doc.length,o.to+1)})),s=o.number}n=!0}return{text:gl(r,zu,e.join(r.lineBreak)),ranges:t,linewise:n}}let Yc=null;Er.copy=Er.cut=(r,e)=>{if(!Vi(r.contentDOM,r.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:s}=w$(r.state);if(!t&&!s)return!1;Yc=s?t:null,e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let i=eg?null:e.clipboardData;return i?(i.clearData(),i.setData("text/plain",t),!0):(k$(r,t),!1)};const ng=Cn.define();function sg(r,e){let t=[];for(let n of r.facet(Dm)){let s=n(r,e);s&&t.push(s)}return t.length?r.update({effects:t,annotations:ng.of(!0)}):null}function ig(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let t=sg(r.state,e);t?r.dispatch(t):r.update([])}},10)}Tr.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),ig(r)};Tr.blur=r=>{r.observer.clearSelectionRange(),ig(r)};Tr.compositionstart=Tr.compositionupdate=r=>{r.observer.editContext||(r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0))};Tr.compositionend=r=>{r.observer.editContext||(r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,Me.chrome&&Me.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50))};Tr.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};Er.beforeinput=(r,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(r.inputState.insertingText=e.data,r.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&r.observer.editContext){let i=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(i&&o.length){let a=o[0],l=r.posAtDOM(a.startContainer,a.startOffset),c=r.posAtDOM(a.endContainer,a.endOffset);return ju(r,{from:l,to:c,insert:r.state.toText(i)},null),!0}}let s;if(Me.chrome&&Me.android&&(s=Km.find(i=>i.inputType==e.inputType))&&(r.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let i=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>i+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}return Me.ios&&e.inputType=="deleteContentForward"&&r.observer.flushSoon(),Me.safari&&e.inputType=="insertText"&&r.inputState.composing>=0&&setTimeout(()=>Tr.compositionend(r,e),20),!1};const wd=new Set;function S$(r){wd.has(r)||(wd.add(r),r.addEventListener("copy",()=>{}),r.addEventListener("cut",()=>{}))}const Sd=["pre-wrap","normal","pre-line","break-spaces"];let ti=!1;function $d(){ti=!1}class $${constructor(e){this.lineWrapping=e,this.doc=st.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Sd.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let s=e[n];s<0?n++:this.heightSamples[Math.floor(s*10)]||(t=!0,this.heightSamples[Math.floor(s*10)]=!0)}return t}refresh(e,t,n,s,i,o){let a=Sd.indexOf(e)>-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a||Math.abs(n-this.charWidth)>.1;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=s,this.lineLength=i,l){this.heightSamples={};for(let c=0;c<o.length;c++){let u=o[c];u<0?c++:this.heightSamples[Math.floor(u*10)]=!0}}return l}}class C${constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Rr{constructor(e,t,n,s,i){this.from=e,this.length=t,this.top=n,this.height=s,this._content=i}get type(){return typeof this._content=="number"?Xt.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof ks?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Rr(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var pt=(function(r){return r[r.ByPos=0]="ByPos",r[r.ByHeight=1]="ByHeight",r[r.ByPosNoHeight=2]="ByPosNoHeight",r})(pt||(pt={}));const ma=.001;class Ft{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ma&&(ti=!0),this.height=e)}replace(e,t,n){return Ft.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,s){let i=this,o=n.doc;for(let a=s.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:u,toB:h}=s[a],f=i.lineAt(l,pt.ByPosNoHeight,n.setDoc(t),0,0),p=f.to>=c?f:i.lineAt(c,pt.ByPosNoHeight,n,0,0);for(h+=p.to-c,c=p.to;a>0&&f.from<=s[a-1].toA;)l=s[a-1].fromA,u=s[a-1].fromB,a--,l<f.from&&(f=i.lineAt(l,pt.ByPosNoHeight,n,0,0));u+=f.from-l,l=f.from;let g=Yu.build(n.setDoc(o),e,u,h);i=Da(i,i.replace(l,c,g))}return i.updateHeight(n,0)}static empty(){return new fr(0,0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,s=0,i=0;for(;;)if(t==n)if(s>i*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),n+=1+a.break,s-=a.size}else if(i>s*2){let a=e[n];a.break?e.splice(n,1,a.left,null,a.right):e.splice(n,1,a.left,a.right),n+=2+a.break,i-=a.size}else break;else if(s<i){let a=e[t++];a&&(s+=a.size)}else{let a=e[--n];a&&(i+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new P$(Ft.of(e.slice(0,t)),o,Ft.of(e.slice(n)))}}function Da(r,e){return r==e?r:(r.constructor!=e.constructor&&(ti=!0),e)}Ft.prototype.size=1;const Q$=Le.replace({});class og extends Ft{constructor(e,t,n){super(e,t),this.deco=n,this.spaceAbove=0}mainBlock(e,t){return new Rr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,t,n,s){return this.spaceAbove&&e<n+this.spaceAbove?new Rr(s,0,n,this.spaceAbove,Q$):this.mainBlock(n,s)}lineAt(e,t,n,s,i){let o=this.mainBlock(s,i);return this.spaceAbove?this.blockAt(0,n,s,i).join(o):o}forEachLine(e,t,n,s,i,o){e<=i+this.length&&t>=i&&o(this.lineAt(0,pt.ByPos,n,s,i))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class fr extends og{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new Rr(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let s=n[0];return n.length==1&&(s instanceof fr||s instanceof Zt&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof Zt?s=new fr(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):Ft.of(n)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more?this.setMeasuredHeight(s):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Zt extends Ft{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,i=s-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*i);o=l/i,this.length>i+1&&(a=(this.height-l)/(this.length-i-1))}else o=this.height/i;return{firstLine:n,lastLine:s,perLine:o,perChar:a}}blockAt(e,t,n,s){let{firstLine:i,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,s);if(t.lineWrapping){let c=s+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),u=t.doc.lineAt(c),h=a+u.length*l,f=Math.max(n,e-h/2);return new Rr(u.from,u.length,f,h,0)}else{let c=Math.max(0,Math.min(o-i,Math.floor((e-n)/a))),{from:u,length:h}=t.doc.line(i+c);return new Rr(u,h,n+a*c,a,0)}}lineAt(e,t,n,s,i){if(t==pt.ByHeight)return this.blockAt(e,n,s,i);if(t==pt.ByPosNoHeight){let{from:p,to:g}=n.doc.lineAt(e);return new Rr(p,g-p,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(n,i),c=n.doc.lineAt(e),u=a+c.length*l,h=c.number-o,f=s+a*h+l*(c.from-i-h);return new Rr(c.from,c.length,Math.max(s,Math.min(f,s+this.height-u)),u,0)}forEachLine(e,t,n,s,i,o){e=Math.max(e,i),t=Math.min(t,i+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(n,i);for(let u=e,h=s;u<=t;){let f=n.doc.lineAt(u);if(u==e){let g=f.number-a;h+=l*g+c*(e-i-g)}let p=l+c*f.length;o(new Rr(f.from,f.length,h,p,0)),h+=p,u=f.to+1}}replace(e,t,n){let s=this.length-t;if(s>0){let i=n[n.length-1];i instanceof Zt?n[n.length-1]=new Zt(i.length+s):n.push(null,new Zt(s-1))}if(e>0){let i=n[0];i instanceof Zt?n[0]=new Zt(e+i.length):n.unshift(new Zt(e-1),null)}return Ft.of(n)}decomposeLeft(e,t){t.push(new Zt(e-1),null)}decomposeRight(e,t){t.push(null,new Zt(this.length-e-1))}updateHeight(e,t=0,n=!1,s){let i=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],a=Math.max(t,s.from),l=-1;for(s.from>t&&o.push(new Zt(s.from-t-1).updateHeight(e,t));a<=i&&s.more;){let u=e.doc.lineAt(a).length;o.length&&o.push(null);let h=s.heights[s.index++],f=0;h<0&&(f=-h,h=s.heights[s.index++]),l==-1?l=h:Math.abs(h-l)>=ma&&(l=-2);let p=new fr(u,h,f);p.outdated=!1,o.push(p),a+=u+1}a<=i&&o.push(null,new Zt(i-a).updateHeight(e,a));let c=Ft.of(o);return(l<0||Math.abs(c.height-this.height)>=ma||Math.abs(l-this.heightMetrics(e,t).perLine)>=ma)&&(ti=!0),Da(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class P$ extends Ft{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,s){let i=n+this.left.height;return e<i?this.left.blockAt(e,t,n,s):this.right.blockAt(e,t,i,s+this.left.length+this.break)}lineAt(e,t,n,s,i){let o=s+this.left.height,a=i+this.left.length+this.break,l=t==pt.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,n,s,i):this.right.lineAt(e,t,n,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let u=t==pt.ByPosNoHeight?pt.ByPosNoHeight:pt.ByPos;return l?c.join(this.right.lineAt(a,u,n,o,a)):this.left.lineAt(a,u,n,s,i).join(c)}forEachLine(e,t,n,s,i,o){let a=s+this.left.height,l=i+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,n,s,i,o),t>=l&&this.right.forEachLine(e,t,n,a,l,o);else{let c=this.lineAt(l,pt.ByPos,n,s,i);e<c.from&&this.left.forEachLine(e,c.from-1,n,s,i,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,a,l,o)}}replace(e,t,n){let s=this.left.length+this.break;if(t<s)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,n));let i=[];e>0&&this.decomposeLeft(e,i);let o=i.length;for(let a of n)i.push(a);if(e>0&&Cd(i,o-1),t<this.length){let a=i.length;this.decomposeRight(t,i),Cd(i,a)}return Ft.of(i)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<s&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Ft.of(this.break?[e,null,t]:[e,t]):(this.left=Da(this.left,e),this.right=Da(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,s){let{left:i,right:o}=this,a=t+i.length+this.break,l=null;return s&&s.from<=t+i.length&&s.more?l=i=i.updateHeight(e,t,n,s):i.updateHeight(e,t,n),s&&s.from<=a+o.length&&s.more?l=o=o.updateHeight(e,a,n,s):o.updateHeight(e,a,n),l?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Cd(r,e){let t,n;r[e]==null&&(t=r[e-1])instanceof Zt&&(n=r[e+1])instanceof Zt&&r.splice(e-1,3,new Zt(t.length+1+n.length))}const T$=5;class Yu{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof fr?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new fr(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let s=n.widget?n.widget.estimatedHeight:0,i=n.widget?n.widget.lineBreaks:0;s<0&&(s=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new og(o,s,n)):(o||i||s>=T$)&&this.addLineDeco(s,i,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new fr(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new Zt(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof fr)return e;let t=new fr(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let s=this.ensureLine();s.length+=n,s.collapsed+=n,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof fr)&&!this.isCovered?this.nodes.push(new fr(0,-1,0)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let s of this.nodes)s instanceof fr&&s.updateHeight(this.oracle,n),n+=s?s.length:1;return this.nodes}static build(e,t,n,s){let i=new Yu(n,e);return et.spans(t,n,s,i,0),i.finish(n)}}function M$(r,e,t){let n=new A$;return et.compare(r,e,t,n,0),n.changes}class A${constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,s){(e<t||n&&n.heightRelevant||s&&s.heightRelevant)&&Vs(e,t,this.changes,5)}}function _$(r,e){let t=r.getBoundingClientRect(),n=r.ownerDocument,s=n.defaultView||window,i=Math.max(0,t.left),o=Math.min(s.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(s.innerHeight,t.bottom);for(let c=r.parentNode;c&&c!=n.body;)if(c.nodeType==1){let u=c,h=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&h.overflow!="visible"){let f=u.getBoundingClientRect();i=Math.max(i,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==r.parentNode?s.innerHeight:l,f.bottom)}c=h.position=="absolute"||h.position=="fixed"?u.offsetParent:u.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:i-t.left,right:Math.max(i,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function R$(r){let e=r.getBoundingClientRect(),t=r.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function B$(r,e){let t=r.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class El{constructor(e,t,n,s){this.from=e,this.to=t,this.size=n,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let s=e[n],i=t[n];if(s.from!=i.from||s.to!=i.to||s.size!=i.size)return!1}return!0}draw(e,t){return Le.replace({widget:new Z$(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class Z$ extends an{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class Qd{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Pd,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=dt.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Nu).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new $$(t),this.stateDeco=Td(e),this.heightMap=Ft.empty().applyChanges(this.stateDeco,st.empty,this.heightOracle.setDoc(e.doc),[new wr(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Le.set(this.lineGaps.map(n=>n.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let s=n?t.head:t.anchor;if(!e.some(({from:i,to:o})=>s>=i&&s<=o)){let{from:i,to:o}=this.lineBlockAt(s);e.push(new Wo(i,o))}}return this.viewports=e.sort((n,s)=>n.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Pd:new Fu(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ei(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Td(this.state);let s=e.changedRanges,i=wr.extendWithRanges(s,M$(n,this.stateDeco,e?e.changes:$t.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);$d(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),i),(this.heightMap.height!=o||ti)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=i.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Xm)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),s=this.heightOracle,i=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?dt.RTL:dt.LTR;let o=this.heightOracle.mustRefreshForWrapping(i)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,u=0;if(a.width&&a.height){let{scaleX:P,scaleY:R}=km(t,a);(P>.005&&Math.abs(this.scaleX-P)>.005||R>.005&&Math.abs(this.scaleY-R)>.005)&&(this.scaleX=P,this.scaleY=R,c|=16,o=l=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let p=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=p&&(this.scrollAnchorHeight=-1,this.scrollTop=p),this.scrolledToBottom=Sm(e.scrollDOM);let g=(this.printing?B$:_$)(t,this.paddingTop),O=g.top-this.pixelViewport.top,x=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let b=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(b!=this.inView&&(this.inView=b,b&&(l=!0)),!this.inView&&!this.scrollTarget&&!R$(e.dom))return 0;let k=a.width;if((this.contentDOMWidth!=k||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let P=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(P)&&(o=!0),o||s.lineWrapping&&Math.abs(k-this.contentDOMWidth)>s.charWidth){let{lineHeight:R,charWidth:V,textHeight:L}=e.docView.measureTextSize();o=R>0&&s.refresh(i,R,V,L,Math.max(5,k/V),P),o&&(e.docView.minWidth=0,c|=16)}O>0&&x>0?u=Math.max(O,x):O<0&&x<0&&(u=Math.min(O,x)),$d();for(let R of this.viewports){let V=R.from==this.viewport.from?P:e.docView.measureVisibleLineHeights(R);this.heightMap=(o?Ft.empty().applyChanges(this.stateDeco,st.empty,this.heightOracle,[new wr(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new C$(R.from,V))}ti&&(c|=2)}let $=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return $&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(u,this.scrollTarget),c|=this.updateForViewport()),(c&2||$)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,i=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Wo(s.lineAt(o-n*1e3,pt.ByHeight,i,0,0).from,s.lineAt(a+(1-n)*1e3,pt.ByHeight,i,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=s.lineAt(c,pt.ByPos,i,0,0),f;t.y=="center"?f=(h.top+h.bottom)/2-u/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=h.top:f=h.bottom-u,l=new Wo(s.lineAt(f-1e3/2,pt.ByHeight,i,0,0).from,s.lineAt(f+u+1e3/2,pt.ByHeight,i,0,0).to)}}return l}mapViewport(e,t){let n=t.mapPos(e.from,-1),s=t.mapPos(e.to,1);return new Wo(this.heightMap.lineAt(n,pt.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(s,pt.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,pt.ByPos,this.heightOracle,0,0),{bottom:i}=this.heightMap.lineAt(t,pt.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||s<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||i>=a+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&i<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let s of e)t.touchesRange(s.from,s.to)||n.push(new El(t.mapPos(s.from),t.mapPos(s.to),s.size,s.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,s=n?1e4:2e3,i=s>>1,o=s<<1;if(this.defaultTextDirection!=dt.LTR&&!n)return[];let a=[],l=(u,h,f,p)=>{if(h-u<i)return;let g=this.state.selection.main,O=[g.from];g.empty||O.push(g.to);for(let b of O)if(b>u&&b<h){l(u,b-10,f,p),l(b+10,h,f,p);return}let x=D$(e,b=>b.from>=f.from&&b.to<=f.to&&Math.abs(b.from-u)<i&&Math.abs(b.to-h)<i&&!O.some(k=>b.from<k&&b.to>k));if(!x){if(h<f.to&&t&&n&&t.visibleRanges.some($=>$.from<=h&&$.to>=h)){let $=t.moveToLineBoundary(re.cursor(h),!1,!0).head;$>u&&(h=$)}let b=this.gapSize(f,u,h,p),k=n||b<2e6?b:2e6;x=new El(u,h,b,k)}a.push(x)},c=u=>{if(u.length<o||u.type!=Xt.Text)return;let h=E$(u.from,u.to,this.stateDeco);if(h.total<o)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,p,g;if(n){let O=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,x,b;if(f!=null){let k=jo(h,f),$=((this.visibleBottom-this.visibleTop)/2+O)/u.height;x=k-$,b=k+$}else x=(this.visibleTop-u.top-O)/u.height,b=(this.visibleBottom-u.top+O)/u.height;p=qo(h,x),g=qo(h,b)}else{let O=h.total*this.heightOracle.charWidth,x=s*this.heightOracle.charWidth,b=0;if(O>2e6)for(let V of e)V.from>=u.from&&V.from<u.to&&V.size!=V.displaySize&&V.from*this.heightOracle.charWidth+b<this.pixelViewport.left&&(b=V.size-V.displaySize);let k=this.pixelViewport.left+b,$=this.pixelViewport.right+b,P,R;if(f!=null){let V=jo(h,f),L=(($-k)/2+x)/O;P=V-L,R=V+L}else P=(k-x)/O,R=($+x)/O;p=qo(h,P),g=qo(h,R)}p>u.from&&l(u.from,p,u,h),g<u.to&&l(g,u.to,u,h)};for(let u of this.viewportLines)Array.isArray(u.type)?u.type.forEach(c):c(u);return a}gapSize(e,t,n,s){let i=jo(s,n)-jo(s,t);return this.heightOracle.lineWrapping?e.height*i:s.total*this.heightOracle.charWidth*i}updateLineGaps(e){El.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Le.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];et.spans(t,this.viewport.from,this.viewport.to,{span(i,o){n.push({from:i,to:o})},point(){}},20);let s=0;if(n.length!=this.visibleRanges.length)s=12;else for(let i=0;i<n.length&&!(s&8);i++){let o=this.visibleRanges[i],a=n[i];(o.from!=a.from||o.to!=a.to)&&(s|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(s|=8))}return this.visibleRanges=n,s}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ei(this.heightMap.lineAt(e,pt.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ei(this.heightMap.lineAt(this.scaler.fromDOM(e),pt.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ei(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Wo{constructor(e,t){this.from=e,this.to=t}}function E$(r,e,t){let n=[],s=r,i=0;return et.spans(t,r,e,{span(){},point(o,a){o>s&&(n.push({from:s,to:o}),i+=o-s),s=a}},20),s<e&&(n.push({from:s,to:e}),i+=e-s),{total:i,ranges:n}}function qo({total:r,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(r*t);for(let s=0;;s++){let{from:i,to:o}=e[s],a=o-i;if(n<=a)return i+n;n-=a}}function jo(r,e){let t=0;for(let{from:n,to:s}of r.ranges){if(e<=s){t+=e-n;break}t+=s-n}return t/r.total}function D$(r,e){for(let t of r)if(e(t))return t}const Pd={toDOM(r){return r},fromDOM(r){return r},scale:1,eq(r){return r==this}};function Td(r){let e=r.facet(fl).filter(n=>typeof n!="function"),t=r.facet(Wu).filter(n=>typeof n!="function");return t.length&&e.push(et.join(t)),e}class Fu{constructor(e,t,n){let s=0,i=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let c=t.lineAt(a,pt.ByPos,e,0,0).top,u=t.lineAt(l,pt.ByPos,e,0,0).bottom;return s+=u-c,{from:a,to:l,top:c,bottom:u,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let a of this.viewports)a.domTop=o+(a.top-i)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),i=a.bottom}toDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.top)return s+(e-n)*this.scale;if(e<=i.bottom)return i.domTop+(e-i.top);n=i.bottom,s=i.domBottom}}fromDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.domTop)return n+(e-s)/this.scale;if(e<=i.domBottom)return i.top+(e-i.domTop);n=i.bottom,s=i.domBottom}}eq(e){return e instanceof Fu?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}}function Ei(r,e){if(e.scale==1)return r;let t=e.toDOM(r.top),n=e.toDOM(r.bottom);return new Rr(r.from,r.length,t,n-t,Array.isArray(r._content)?r._content.map(s=>Ei(s,e)):r._content)}const Yo=Qe.define({combine:r=>r.join(" ")}),Fc=Qe.define({combine:r=>r.indexOf(!0)>-1}),Uc=Nn.newName(),ag=Nn.newName(),lg=Nn.newName(),cg={"&light":"."+ag,"&dark":"."+lg};function Gc(r,e,t){return new Nn(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return r;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):r+" "+n}})}const L$=Gc("."+Uc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},cg),X$={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Dl=Me.ie&&Me.ie_version<=11;class I${constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new g2,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(Me.ie&&Me.ie_version<=11||Me.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Me.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Me.chrome&&Me.chrome_version<126)&&(this.editContext=new z$(e),e.state.facet(On)&&(e.contentDOM.editContext=this.editContext.editContext)),Dl&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(On)?n.root.activeElement!=this.dom:!Vi(this.dom,s))return;let i=s.anchorNode&&n.docView.tile.nearest(s.anchorNode);if(i&&i.isWidget()&&i.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Me.ie&&Me.ie_version<=11||Me.android&&Me.chrome)&&!n.state.selection.main.empty&&s.focusNode&&zi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Hi(e.root);if(!t)return!1;let n=Me.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&V$(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let s=Vi(this.dom,n);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&v2(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),s&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,X$),Dl&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Dl&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let s=()=>{let i=this.delayedAndroidKey;i&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=i.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&i.force&&zs(this.dom,i.key,i.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,s=!1;for(let i of e){let o=this.readMutation(i);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:s}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),s=this.selectionChanged&&Vi(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new i$(this.view,e,t,n);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,s=Gm(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Ea(this.view.state.selection,t.newSel.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Md(t,e.previousSibling||e.target.previousSibling,-1),s=Md(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(On)!=e.state.facet(On)&&(e.view.contentDOM.editContext=e.state.facet(On)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Md(r,e,t){for(;e;){let n=kt.get(e);if(n&&n.parent==r)return n;let s=e.parentNode;e=s!=r.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function Ad(r,e){let t=e.startContainer,n=e.startOffset,s=e.endContainer,i=e.endOffset,o=r.docView.domAtPos(r.state.selection.main.anchor,1);return zi(o.node,o.offset,s,i)&&([t,n,s,i]=[s,i,t,n]),{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}}function V$(r,e){if(e.getComposedRanges){let s=e.getComposedRanges(r.root)[0];if(s)return Ad(r,s)}let t=null;function n(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return r.contentDOM.addEventListener("beforeinput",n,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",n,!0),t?Ad(r,t):null}class z${constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let s=e.state.selection.main,{anchor:i,head:o}=s,a=this.toEditorPos(n.updateRangeStart),l=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>n.text.length;a==this.from&&i<this.from?a=i:l==this.to&&i>this.to&&(l=i);let u=Hm(e.state.sliceDoc(a,l),n.text,(c?s.from:s.to)-a,c?"end":null);if(!u){let f=re.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Ea(f,s)||e.dispatch({selection:f,userEvent:"select"});return}let h={from:u.from+a,to:u.toA+a,insert:st.of(n.text.slice(u.from,u.toB).split(`
20
- `))};if((Me.mac||Me.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:st.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let f=this.to-this.from+(h.to-h.from+h.insert.length);ju(e,h,re.single(this.toEditorPos(n.selectionStart,f),this.toEditorPos(n.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let s=[],i=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);i=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||i||new DOMRect,s.push(i)}t.updateCharacterBounds(n.rangeStart,s)},this.handlers.textformatupdate=n=>{let s=[];for(let i of n.getTextFormats()){let o=i.underlineStyle,a=i.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(i.rangeStart),c=this.toEditorPos(i.rangeEnd);if(l<c){let u=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;s.push(Le.mark({attributes:{style:u}}).range(l,c))}}}e.dispatch({effects:Vm.of(Le.set(s))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{this.editContext.updateControlBounds(n.contentDOM.getBoundingClientRect());let s=Hi(n.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,s=this.pendingContextChange;return e.changes.iterChanges((i,o,a,l,c)=>{if(n)return;let u=c.length-(o-i);if(s&&o>=s.to)if(s.from==i&&s.to==o&&s.insert.eq(c)){s=this.pendingContextChange=null,t+=u,this.to+=u;return}else s=null,this.revertPending(e.state);if(i+=t,o+=t,o<=this.from)this.from+=u,this.to+=u;else if(i<this.to){if(i<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(i),this.toContextPos(o),c.toString()),this.to+=u}t+=u}),s&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(n,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class Se{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(s=>s.forEach(i=>n(i,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||O2(e.parent)||document,this.viewState=new Qd(e.state||tt.create(e)),e.scrollTo&&e.scrollTo.is(Vo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ds).map(s=>new Al(s));for(let s of this.plugins)s.update(this);this.observer=new I$(this),this.inputState=new c$(this),this.inputState.ensureHandlers(this.plugins),this.docView=new pd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof yt?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,s,i=this.state;for(let f of e){if(f.startState!=i)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");i=f.state}if(this.destroyed){this.viewState.state=i;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(ng))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=sg(i,o),l||(a=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(i.doc)||!this.state.selection.eq(i.selection))&&(u=null)):this.observer.clear(),i.facet(tt.phrases)!=this.state.facet(tt.phrases))return this.setState(i);s=Ra.create(this,i,e),s.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:p}=f.state.selection;h=new Ns(p.empty?p:re.cursor(p.head,p.head>p.anchor?-1:1))}for(let p of f.effects)p.is(Vo)&&(h=p.value.clip(this.state))}this.viewState.update(s,h),this.bidiCache=La.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Bi)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Yo)!=s.state.facet(Yo)&&(this.viewState.mustMeasureContent=!0),(t||n||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let f of this.state.facet(Nc))try{f(s)}catch(p){sr(this.state,p,"update listener")}(l||u)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),u&&!Gm(this,u)&&c.force&&zs(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Qd(e),this.plugins=e.facet(Ds).map(n=>new Al(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new pd(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ds),n=e.state.facet(Ds);if(t!=n){let s=[];for(let i of n){let o=t.indexOf(i);if(o<0)s.push(new Al(i));else{let a=this.plugins[o];a.mustUpdate=e,s.push(a)}}for(let i of this.plugins)i.mustUpdate!=e&&i.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){sr(this.state,n,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,s=n.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(Sm(n))i=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(s);i=p.from,o=p.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(p=>{try{return p.read(this)}catch(g){return sr(this.state,g),_d}}),h=Ra.create(this,this.state,[]),f=!1;h.flags|=l,t?t.flags|=l:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let p=0;p<c.length;p++)if(u[p]!=_d)try{let g=c[p];g.write&&g.write(u[p],this)}catch(g){sr(this.state,g)}if(f&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let g=(i<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(i).top)-o;if(g>1||g<-1){s=s+g,n.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(Nc))a(t)}get themeClasses(){return Uc+" "+(this.state.facet(Fc)?lg:ag)+" "+this.state.facet(Yo)}updateAttrs(){let e=Rd(this,zm,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(On)?"true":"false",class:"cm-content",style:`${Me.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Rd(this,Nu,t);let n=this.observer.ignore(()=>{let s=ld(this.contentDOM,this.contentAttrs,t),i=ld(this.dom,this.editorAttrs,e);return s||i});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let s of n.effects)if(s.is(Se.announce)){t&&(this.announceDOM.textContent=""),t=!1;let i=this.announceDOM.appendChild(document.createElement("div"));i.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Bi);let e=this.state.facet(Se.cspNonce);Nn.mount(this.root,this.styleModules.concat(L$).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Zl(this,e,md(this,e,t,n))}moveByGroup(e,t){return Zl(this,e,md(this,e,t,n=>J2(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),i=n[t?n.length-1:0];return re.cursor(i.side(t,s)+e.from,i.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,n=!0){return K2(this,e,t,n)}moveVertically(e,t,n){return Zl(this,e,e$(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=jc(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),jc(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let s=this.state.doc.lineAt(e),i=this.bidiSpans(s),o=i[Jr.find(i,e-s.from,-1,t)];return _a(n,o.dir==dt.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Lm)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>N$)return Mm(e.length);let t=this.textDirectionAt(e.from),n;for(let i of this.bidiCache)if(i.from==e.from&&i.dir==t&&(i.fresh||Tm(i.isolates,n=hd(this,e))))return i.order;n||(n=hd(this,e));let s=$2(e.text,t,n);return this.bidiCache.push(new La(e.from,e.to,t,n,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Me.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{wm(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Vo.of(new Ns(typeof e=="number"?re.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Vo.of(new Ns(re.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return bt.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return bt.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Nn.newName(),s=[Yo.of(n),Bi.of(Gc(`.${n}`,e))];return t&&t.dark&&s.push(Fc.of(!0)),s}static baseTheme(e){return $n.lowest(Bi.of(Gc("."+Uc,e,cg)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),s=n&&kt.get(n)||kt.get(e);return((t=s?.root)===null||t===void 0?void 0:t.view)||null}}Se.styleModule=Bi;Se.inputHandler=Em;Se.clipboardInputFilter=Vu;Se.clipboardOutputFilter=zu;Se.scrollHandler=Im;Se.focusChangeEffect=Dm;Se.perLineTextDirection=Lm;Se.exceptionSink=Zm;Se.updateListener=Nc;Se.editable=On;Se.mouseSelectionStyle=Bm;Se.dragMovesSelection=Rm;Se.clickAddsSelectionRange=_m;Se.decorations=fl;Se.blockWrappers=Nm;Se.outerDecorations=Wu;Se.atomicRanges=wo;Se.bidiIsolatedRanges=Wm;Se.scrollMargins=qm;Se.darkTheme=Fc;Se.cspNonce=Qe.define({combine:r=>r.length?r[0]:""});Se.contentAttributes=Nu;Se.editorAttributes=zm;Se.lineWrapping=Se.contentAttributes.of({class:"cm-lineWrapping"});Se.announce=je.define();const N$=4096,_d={};class La{constructor(e,t,n,s,i,o){this.from=e,this.to=t,this.dir=n,this.isolates=s,this.fresh=i,this.order=o}static update(e,t){if(t.empty&&!e.some(i=>i.fresh))return e;let n=[],s=e.length?e[e.length-1].dir:dt.LTR;for(let i=Math.max(0,e.length-10);i<e.length;i++){let o=e[i];o.dir==s&&!t.touchesRange(o.from,o.to)&&n.push(new La(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}}function Rd(r,e,t){for(let n=r.state.facet(e),s=n.length-1;s>=0;s--){let i=n[s],o=typeof i=="function"?i(r):i;o&&Lu(o,t)}return t}const W$=Me.mac?"mac":Me.windows?"win":Me.linux?"linux":"key";function q$(r,e){const t=r.split(/-(?!$)/);let n=t[t.length-1];n=="Space"&&(n=" ");let s,i,o,a;for(let l=0;l<t.length-1;++l){const c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))s=!0;else if(/^(c|ctrl|control)$/i.test(c))i=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:i=!0;else throw new Error("Unrecognized modifier name: "+c)}return s&&(n="Alt-"+n),i&&(n="Ctrl-"+n),a&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function Fo(r,e,t){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),t!==!1&&e.shiftKey&&(r="Shift-"+r),r}const j$=$n.default(Se.domEventHandlers({keydown(r,e){return hg(ug(e.state),r,e,"editor")}})),So=Qe.define({enables:j$}),Bd=new WeakMap;function ug(r){let e=r.facet(So),t=Bd.get(e);return t||Bd.set(e,t=U$(e.reduce((n,s)=>n.concat(s),[]))),t}function Y$(r,e,t){return hg(ug(r.state),e,r,t)}let Ln=null;const F$=4e3;function U$(r,e=W$){let t=Object.create(null),n=Object.create(null),s=(o,a)=>{let l=n[o];if(l==null)n[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},i=(o,a,l,c,u)=>{var h,f;let p=t[o]||(t[o]=Object.create(null)),g=a.split(/ (?!$)/).map(b=>q$(b,e));for(let b=1;b<g.length;b++){let k=g.slice(0,b).join(" ");s(k,!0),p[k]||(p[k]={preventDefault:!0,stopPropagation:!1,run:[$=>{let P=Ln={view:$,prefix:k,scope:o};return setTimeout(()=>{Ln==P&&(Ln=null)},F$),!0}]})}let O=g.join(" ");s(O,!1);let x=p[O]||(p[O]={preventDefault:!1,stopPropagation:!1,run:((f=(h=p._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});l&&x.run.push(l),c&&(x.preventDefault=!0),u&&(x.stopPropagation=!0)};for(let o of r){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let u=t[c]||(t[c]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let f in u)u[f].run.push(p=>h(p,Hc))}let l=o[e]||o.key;if(l)for(let c of a)i(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&i(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}let Hc=null;function hg(r,e,t,n){Hc=e;let s=l2(e),i=er(s,0),o=Hr(i)==s.length&&s!=" ",a="",l=!1,c=!1,u=!1;Ln&&Ln.view==t&&Ln.scope==n&&(a=Ln.prefix+" ",Jm.indexOf(e.keyCode)<0&&(c=!0,Ln=null));let h=new Set,f=x=>{if(x){for(let b of x.run)if(!h.has(b)&&(h.add(b),b(t)))return x.stopPropagation&&(u=!0),!0;x.preventDefault&&(x.stopPropagation&&(u=!0),c=!0)}return!1},p=r[n],g,O;return p&&(f(p[a+Fo(s,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Me.windows&&e.ctrlKey&&e.altKey)&&!(Me.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(g=Wn[e.keyCode])&&g!=s?(f(p[a+Fo(g,e,!0)])||e.shiftKey&&(O=Ui[e.keyCode])!=s&&O!=g&&f(p[a+Fo(O,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(p[a+Fo(s,e,!0)])&&(l=!0),!l&&f(p._any)&&(l=!0)),c&&(l=!0),l&&u&&e.stopPropagation(),Hc=null,l}class $o{constructor(e,t,n,s,i){this.className=e,this.left=t,this.top=n,this.width=s,this.height=i}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let s=e.coordsAtPos(n.head,n.assoc||1);if(!s)return[];let i=dg(e);return[new $o(t,s.left-i.left,s.top-i.top,null,s.bottom-s.top)]}else return G$(e,t,n)}}function dg(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==dt.LTR?e.left:e.right-r.scrollDOM.clientWidth*r.scaleX)-r.scrollDOM.scrollLeft*r.scaleX,top:e.top-r.scrollDOM.scrollTop*r.scaleY}}function Zd(r,e,t,n){let s=r.coordsAtPos(e,t*2);if(!s)return n;let i=r.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,a=r.posAtCoords({x:i.left+1,y:o}),l=r.posAtCoords({x:i.right-1,y:o});return a==null||l==null?n:{from:Math.max(n.from,Math.min(a,l)),to:Math.min(n.to,Math.max(a,l))}}function G$(r,e,t){if(t.to<=r.viewport.from||t.from>=r.viewport.to)return[];let n=Math.max(t.from,r.viewport.from),s=Math.min(t.to,r.viewport.to),i=r.textDirection==dt.LTR,o=r.contentDOM,a=o.getBoundingClientRect(),l=dg(r),c=o.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),h=a.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),f=a.right-(u?parseInt(u.paddingRight):0),p=qc(r,n,1),g=qc(r,s,-1),O=p.type==Xt.Text?p:null,x=g.type==Xt.Text?g:null;if(O&&(r.lineWrapping||p.widgetLineBreaks)&&(O=Zd(r,n,1,O)),x&&(r.lineWrapping||g.widgetLineBreaks)&&(x=Zd(r,s,-1,x)),O&&x&&O.from==x.from&&O.to==x.to)return k($(t.from,t.to,O));{let R=O?$(t.from,null,O):P(p,!1),V=x?$(null,t.to,x):P(g,!0),L=[];return(O||p).to<(x||g).from-(O&&x?1:0)||p.widgetLineBreaks>1&&R.bottom+r.defaultLineHeight/2<V.top?L.push(b(h,R.bottom,f,V.top)):R.bottom<V.top&&r.elementAtHeight((R.bottom+V.top)/2).type==Xt.Text&&(R.bottom=V.top=(R.bottom+V.top)/2),k(R).concat(L).concat(k(V))}function b(R,V,L,ae){return new $o(e,R-l.left,V-l.top,Math.max(0,L-R),ae-V)}function k({top:R,bottom:V,horizontal:L}){let ae=[];for(let ce=0;ce<L.length;ce+=2)ae.push(b(L[ce],R,L[ce+1],V));return ae}function $(R,V,L){let ae=1e9,ce=-1e9,Oe=[];function q(U,j,W,I,z){let xe=r.coordsAtPos(U,U==L.to?-2:2),J=r.coordsAtPos(W,W==L.from?2:-2);!xe||!J||(ae=Math.min(xe.top,J.top,ae),ce=Math.max(xe.bottom,J.bottom,ce),z==dt.LTR?Oe.push(i&&j?h:xe.left,i&&I?f:J.right):Oe.push(!i&&I?h:J.left,!i&&j?f:xe.right))}let X=R??L.from,E=V??L.to;for(let U of r.visibleRanges)if(U.to>X&&U.from<E)for(let j=Math.max(U.from,X),W=Math.min(U.to,E);;){let I=r.state.doc.lineAt(j);for(let z of r.bidiSpans(I)){let xe=z.from+I.from,J=z.to+I.from;if(xe>=W)break;J>j&&q(Math.max(xe,j),R==null&&xe<=X,Math.min(J,W),V==null&&J>=E,z.dir)}if(j=I.to+1,j>=W)break}return Oe.length==0&&q(X,R==null,E,V==null,r.textDirection),{top:ae,bottom:ce,horizontal:Oe}}function P(R,V){let L=a.top+(V?R.top:R.bottom);return{top:L,bottom:L,horizontal:[]}}}function H$(r,e){return r.constructor==e.constructor&&r.eq(e)}class K${constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(ga)!=e.state.facet(ga)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(ga);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!H$(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[n].constructor&&s.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e,Me.safari&&Me.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const ga=Qe.define();function fg(r){return[bt.define(e=>new K$(e,r)),ga.of(r)]}const Ji=Qe.define({combine(r){return on(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function J$(r={}){return[Ji.of(r),e5,t5,r5,Xm.of(!0)]}function pg(r){return r.startState.facet(Ji)!=r.state.facet(Ji)}const e5=fg({above:!0,markers(r){let{state:e}=r,t=e.facet(Ji),n=[];for(let s of e.selection.ranges){let i=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=i?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=s.empty?s:re.cursor(s.head,s.head>s.anchor?-1:1);for(let l of $o.forRange(r,o,a))n.push(l)}}return n},update(r,e){r.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=pg(r);return t&&Ed(r.state,e),r.docChanged||r.selectionSet||t},mount(r,e){Ed(e.state,r)},class:"cm-cursorLayer"});function Ed(r,e){e.style.animationDuration=r.facet(Ji).cursorBlinkRate+"ms"}const t5=fg({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:$o.forRange(r,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||pg(r)},class:"cm-selectionLayer"}),r5=$n.highest(Se.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),mg=je.define({map(r,e){return r==null?null:e.mapPos(r)}}),Di=At.define({create(){return null},update(r,e){return r!=null&&(r=e.changes.mapPos(r)),e.effects.reduce((t,n)=>n.is(mg)?n.value:t,r)}}),n5=bt.fromClass(class{constructor(r){this.view=r,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(r){var e;let t=r.state.field(Di);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(r.startState.field(Di)!=t||r.docChanged||r.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:r}=this,e=r.state.field(Di),t=e!=null&&r.coordsAtPos(e);if(!t)return null;let n=r.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+r.scrollDOM.scrollLeft*r.scaleX,top:t.top-n.top+r.scrollDOM.scrollTop*r.scaleY,height:t.bottom-t.top}}drawCursor(r){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;r?(this.cursor.style.left=r.left/e+"px",this.cursor.style.top=r.top/t+"px",this.cursor.style.height=r.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(r){this.view.state.field(Di)!=r&&this.view.dispatch({effects:mg.of(r)})}},{eventObservers:{dragover(r){this.setDropPos(this.view.posAtCoords({x:r.clientX,y:r.clientY}))},dragleave(r){(r.target==this.view.contentDOM||!this.view.contentDOM.contains(r.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function s5(){return[Di,n5]}function Dd(r,e,t,n,s){e.lastIndex=0;for(let i=r.iterRange(t,n),o=t,a;!i.next().done;o+=i.value.length)if(!i.lineBreak)for(;a=e.exec(i.value);)s(o+a.index,a)}function i5(r,e){let t=r.visibleRanges;if(t.length==1&&t[0].from==r.viewport.from&&t[0].to==r.viewport.to)return t;let n=[];for(let{from:s,to:i}of t)s=Math.max(r.state.doc.lineAt(s).from,s-e),i=Math.min(r.state.doc.lineAt(i).to,i+e),n.length&&n[n.length-1].to>=s?n[n.length-1].to=i:n.push({from:s,to:i});return n}class o5{constructor(e){const{regexp:t,decoration:n,decorate:s,boundary:i,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(a,l,c,u)=>s(u,c,c+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,c,u)=>{let h=n(a,l,c);h&&u(c,c+a[0].length,h)};else if(n)this.addMatch=(a,l,c,u)=>u(c,c+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=i,this.maxLength=o}createDeco(e){let t=new kn,n=t.add.bind(t);for(let{from:s,to:i}of i5(e,this.maxLength))Dd(e.state.doc,this.regexp,s,i,(o,a)=>this.addMatch(a,e,o,n));return t.finish()}updateDeco(e,t){let n=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((i,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),s=Math.max(l,s))}),e.viewportMoved||s-n>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),n,s):t}updateRange(e,t,n,s){for(let i of e.visibleRanges){let o=Math.max(i.from,n),a=Math.min(i.to,s);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,u=Math.max(i.from,l.from),h=Math.min(i.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){u=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){h=a;break}}let f=[],p,g=(O,x,b)=>f.push(b.range(O,x));if(l==c)for(this.regexp.lastIndex=u-l.from;(p=this.regexp.exec(l.text))&&p.index<h-l.from;)this.addMatch(p,e,p.index+l.from,g);else Dd(e.state.doc,this.regexp,u,h,(O,x)=>this.addMatch(x,e,O,g));t=t.update({filterFrom:u,filterTo:h,filter:(O,x)=>O<u||x>h,add:f})}}return t}}const Kc=/x/.unicode!=null?"gu":"g",a5=new RegExp(`[\0-\b
21
- --Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,Kc),l5={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Ll=null;function c5(){var r;if(Ll==null&&typeof document<"u"&&document.body){let e=document.body.style;Ll=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return Ll||!1}const Oa=Qe.define({combine(r){let e=on(r,{render:null,specialChars:a5,addSpecialChars:null});return(e.replaceTabs=!c5())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Kc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Kc)),e}});function u5(r={}){return[Oa.of(r),h5()]}let Ld=null;function h5(){return Ld||(Ld=bt.fromClass(class{constructor(r){this.view=r,this.decorations=Le.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(Oa)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new o5({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:s}=t.state,i=er(e[0],0);if(i==9){let o=s.lineAt(n),a=t.state.tabSize,l=Zr(o.text,a,n-o.from);return Le.replace({widget:new m5((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[i]||(this.decorationCache[i]=Le.replace({widget:new p5(r,i)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(Oa);r.startState.facet(Oa)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}const d5="•";function f5(r){return r>=32?d5:r==10?"␤":String.fromCharCode(9216+r)}class p5 extends an{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=f5(this.code),n=e.state.phrase("Control character")+" "+(l5[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,n,t);if(s)return s;let i=document.createElement("span");return i.textContent=t,i.title=n,i.setAttribute("aria-label",n),i.className="cm-specialChar",i}ignoreEvent(){return!1}}class m5 extends an{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function g5(){return v5}const O5=Le.line({class:"cm-activeLine"}),v5=bt.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let s=r.lineBlockAt(n.head);s.from>e&&(t.push(O5.range(s.from)),e=s.from)}return Le.set(t)}},{decorations:r=>r.decorations}),Jc=2e3;function b5(r,e,t){let n=Math.min(e.line,t.line),s=Math.max(e.line,t.line),i=[];if(e.off>Jc||t.off>Jc||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=s;l++){let c=r.doc.line(l);c.length<=a&&i.push(re.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=s;l++){let c=r.doc.line(l),u=_c(c.text,o,r.tabSize,!0);if(u<0)i.push(re.cursor(c.to));else{let h=_c(c.text,a,r.tabSize);i.push(re.range(c.from+u,c.from+h))}}}return i}function x5(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function Xd(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),s=t-n.from,i=s>Jc?-1:s==n.length?x5(r,e.clientX):Zr(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:i,off:s}}function y5(r,e){let t=Xd(r,e),n=r.state.selection;return t?{update(s){if(s.docChanged){let i=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(i);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(s.changes)}},get(s,i,o){let a=Xd(r,s);if(!a)return n;let l=b5(r.state,t,a);return l.length?o?re.create(l.concat(n.ranges)):re.create(l):n}}:null}function k5(r){let e=(t=>t.altKey&&t.button==0);return Se.mouseSelectionStyle.of((t,n)=>e(n)?y5(t,n):null)}const w5={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},S5={style:"cursor: crosshair"};function $5(r={}){let[e,t]=w5[r.key||"Alt"],n=bt.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[n,Se.contentAttributes.of(s=>{var i;return!((i=s.plugin(n))===null||i===void 0)&&i.isDown?S5:null})]}const Uo="-10000px";class gg{constructor(e,t,n,s){this.facet=t,this.createTooltipView=n,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let i=null;this.tooltipViews=this.tooltips.map(o=>i=n(o,i))}update(e,t){var n;let s=e.state.facet(this.facet),i=s.filter(l=>l);if(s===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<i.length;l++){let c=i[l],u=-1;if(c){for(let h=0;h<this.tooltips.length;h++){let f=this.tooltips[h];f&&f.create==c.create&&(u=h)}if(u<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let h=o[l]=this.tooltipViews[u];a&&(a[l]=t[u]),h.update&&h.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(n=l.destroy)===null||n===void 0||n.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=s,this.tooltips=i,this.tooltipViews=o,!0}}function C5(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const Xl=Qe.define({combine:r=>{var e,t,n;return{position:Me.ios?"absolute":((e=r.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=r.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=r.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||C5}}}),Id=new WeakMap,Uu=bt.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(Xl);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new gg(r,Gu,(t,n)=>this.createTooltip(t,n),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let t=e||r.geometryChanged,n=r.state.facet(Xl);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(r,e){let t=r.create(this.view),n=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),r.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=Uo,t.dom.style.left="0px",this.container.insertBefore(t.dom,n),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var r,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(r=n.destroy)===null||r===void 0||r.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:i}=this.manager.tooltipViews[0];if(Me.safari){let o=i.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!i.offsetParent&&i.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let i=this.parent.getBoundingClientRect();i.width&&i.height&&(r=i.width/this.parent.offsetWidth,e=i.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),s=qu(this.view);return{visible:{left:n.left+s.left,top:n.top+s.top,right:n.right-s.right,bottom:n.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((i,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(i.pos):this.view.coordsAtPos(i.pos)}),size:this.manager.tooltipViews.map(({dom:i})=>i.getBoundingClientRect()),space:this.view.state.facet(Xl).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:t}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:n,scaleX:s,scaleY:i}=r,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:u}=c,h=r.pos[a],f=r.size[a];if(!h||l.clip!==!1&&(h.bottom<=Math.max(t.top,n.top)||h.top>=Math.min(t.bottom,n.bottom)||h.right<Math.max(t.left,n.left)-.1||h.left>Math.min(t.right,n.right)+.1)){u.style.top=Uo;continue}let p=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,g=p?7:0,O=f.right-f.left,x=(e=Id.get(c))!==null&&e!==void 0?e:f.bottom-f.top,b=c.offset||P5,k=this.view.textDirection==dt.LTR,$=f.width>n.right-n.left?k?n.left:n.right-f.width:k?Math.max(n.left,Math.min(h.left-(p?14:0)+b.x,n.right-O)):Math.min(Math.max(n.left,h.left-O+(p?14:0)-b.x),n.right-O),P=this.above[a];!l.strictSide&&(P?h.top-x-g-b.y<n.top:h.bottom+x+g+b.y>n.bottom)&&P==n.bottom-h.bottom>h.top-n.top&&(P=this.above[a]=!P);let R=(P?h.top-n.top:n.bottom-h.bottom)-g;if(R<x&&c.resize!==!1){if(R<this.view.defaultLineHeight){u.style.top=Uo;continue}Id.set(c,x),u.style.height=(x=R)/i+"px"}else u.style.height&&(u.style.height="");let V=P?h.top-x-g-b.y:h.bottom+g+b.y,L=$+O;if(c.overlap!==!0)for(let ae of o)ae.left<L&&ae.right>$&&ae.top<V+x&&ae.bottom>V&&(V=P?ae.top-x-2-g:ae.bottom+g+2);if(this.position=="absolute"?(u.style.top=(V-r.parent.top)/i+"px",Vd(u,($-r.parent.left)/s)):(u.style.top=V/i+"px",Vd(u,$/s)),p){let ae=h.left+(k?b.x:-b.x)-($+14-7);p.style.left=ae/s+"px"}c.overlap!==!0&&o.push({left:$,top:V,right:L,bottom:V+x}),u.classList.toggle("cm-tooltip-above",P),u.classList.toggle("cm-tooltip-below",!P),c.positioned&&c.positioned(r.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let r of this.manager.tooltipViews)r.dom.style.top=Uo}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Vd(r,e){let t=parseInt(r.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(r.style.left=e+"px")}const Q5=Se.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),P5={x:0,y:0},Gu=Qe.define({enables:[Uu,Q5]}),Xa=Qe.define({combine:r=>r.reduce((e,t)=>e.concat(t),[])});class Ol{static create(e){return new Ol(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new gg(e,Xa,(t,n)=>this.createHostedView(t,n),t=>t.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let s=n[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const T5=Gu.compute([Xa],r=>{let e=r.facet(Xa);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var n;return(n=t.end)!==null&&n!==void 0?n:t.pos})),create:Ol.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class M5{constructor(e,t,n,s,i){this.view=e,this.source=t,this.field=n,this.setHover=s,this.hoverTime=i,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.tile.nearest(t.target);if(!n)return;let s,i=1;if(n.isWidget())s=n.posAtStart;else{if(s=e.posAtCoords(t),s==null)return;let a=e.coordsAtPos(s);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(s)).find(u=>u.from<=s&&u.to>=s),c=l&&l.dir==dt.RTL?-1:1;i=t.x<a.left?-c:c}let o=this.source(e,s,i);if(o?.then){let a=this.pending={pos:s};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>sr(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Uu),t=e?e.manager.tooltips.findIndex(n=>n.create==Ol.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:i}=this;if(s.length&&i&&!A5(i.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,a=(n=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!_5(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Go=4;function A5(r,e){let{left:t,right:n,top:s,bottom:i}=r.getBoundingClientRect(),o;if(o=r.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();s=Math.min(a.top,s),i=Math.max(a.bottom,i)}return e.clientX>=t-Go&&e.clientX<=n+Go&&e.clientY>=s-Go&&e.clientY<=i+Go}function _5(r,e,t,n,s,i){let o=r.scrollDOM.getBoundingClientRect(),a=r.documentTop+r.documentPadding.top+r.contentHeight;if(o.left>n||o.right<n||o.top>s||Math.min(o.bottom,a)<s)return!1;let l=r.posAtCoords({x:n,y:s},!1);return l>=e&&l<=t}function R5(r,e={}){let t=je.define(),n=At.define({create(){return[]},update(s,i){if(s.length&&(e.hideOnChange&&(i.docChanged||i.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(i,o))),i.docChanged)){let o=[];for(let a of s){let l=i.changes.mapPos(a.pos,-1,Dt.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=i.changes.mapPos(c.end)),o.push(c)}}s=o}for(let o of i.effects)o.is(t)&&(s=o.value),o.is(B5)&&(s=[]);return s},provide:s=>Xa.from(s)});return{active:n,extension:[n,bt.define(s=>new M5(s,r,n,t,e.hoverTime||300)),T5]}}function Og(r,e){let t=r.plugin(Uu);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}const B5=je.define(),zd=Qe.define({combine(r){let e,t;for(let n of r)e=e||n.topContainer,t=t||n.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Hu(r,e){let t=r.plugin(vg),n=t?t.specs.indexOf(e):-1;return n>-1?t.panels[n]:null}const vg=bt.fromClass(class{constructor(r){this.input=r.state.facet(eo),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(r));let e=r.state.facet(zd);this.top=new Ho(r,!0,e.topContainer),this.bottom=new Ho(r,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(r){let e=r.state.facet(zd);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Ho(r.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ho(r.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=r.state.facet(eo);if(t!=this.input){let n=t.filter(l=>l),s=[],i=[],o=[],a=[];for(let l of n){let c=this.specs.indexOf(l),u;c<0?(u=l(r.view),a.push(u)):(u=this.panels[c],u.update&&u.update(r)),s.push(u),(u.top?i:o).push(u)}this.specs=n,this.panels=s,this.top.sync(i),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let n of this.panels)n.update&&n.update(r)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:r=>Se.scrollMargins.of(e=>{let t=e.plugin(r);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Ho{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Nd(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Nd(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Nd(r){let e=r.nextSibling;return r.remove(),e}const eo=Qe.define({enables:vg});function Z5(r,e){let t,n=new Promise(o=>t=o),s=o=>E5(o,e,t);r.state.field(Il,!1)?r.dispatch({effects:bg.of(s)}):r.dispatch({effects:je.appendConfig.of(Il.init(()=>[s]))});let i=xg.of(s);return{close:i,result:n.then(o=>((r.win.queueMicrotask||(l=>r.win.setTimeout(l,10)))(()=>{r.state.field(Il).indexOf(s)>-1&&r.dispatch({effects:i})}),o))}}const Il=At.define({create(){return[]},update(r,e){for(let t of e.effects)t.is(bg)?r=[t.value].concat(r):t.is(xg)&&(r=r.filter(n=>n!=t.value));return r},provide:r=>eo.computeN([r],e=>e.field(r))}),bg=je.define(),xg=je.define();function E5(r,e,t){let n=e.content?e.content(r,()=>o(null)):null;if(!n){if(n=ct("form"),e.input){let a=ct("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),n.appendChild(ct("label",(e.label||"")+": ",a))}else n.appendChild(document.createTextNode(e.label||""));n.appendChild(document.createTextNode(" ")),n.appendChild(ct("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=n.nodeName=="FORM"?[n]:n.querySelectorAll("form");for(let a=0;a<s.length;a++){let l=s[a];l.addEventListener("keydown",c=>{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let i=ct("div",n,ct("button",{onclick:()=>o(null),"aria-label":r.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(i.className=e.class),i.classList.add("cm-dialog");function o(a){i.contains(i.ownerDocument.activeElement)&&r.focus(),t(a)}return{dom:i,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=n.querySelector(e.focus):a=n.querySelector("input")||n.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}class Sn extends zn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Sn.prototype.elementClass="";Sn.prototype.toDOM=void 0;Sn.prototype.mapMode=Dt.TrackBefore;Sn.prototype.startSide=Sn.prototype.endSide=-1;Sn.prototype.point=!0;const va=Qe.define(),D5=Qe.define(),L5={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>et.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Wi=Qe.define();function X5(r){return[yg(),Wi.of({...L5,...r})]}const Wd=Qe.define({combine:r=>r.some(e=>e)});function yg(r){return[I5]}const I5=bt.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(Wi).map(e=>new jd(r,e)),this.fixed=!r.state.facet(Wd);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,t=r.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Wd)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=et.iter(this.view.state.facet(va),this.view.viewport.from),n=[],s=this.gutters.map(i=>new V5(i,this.view.viewport,-this.view.documentPadding.top));for(let i of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(i.type)){let o=!0;for(let a of i.type)if(a.type==Xt.Text&&o){eu(t,n,a.from);for(let l of s)l.line(this.view,a,n);o=!1}else if(a.widget)for(let l of s)l.widget(this.view,a)}else if(i.type==Xt.Text){eu(t,n,i.from);for(let o of s)o.line(this.view,i,n)}else if(i.widget)for(let o of s)o.widget(this.view,i);for(let i of s)i.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(Wi),t=r.state.facet(Wi),n=r.docChanged||r.heightChanged||r.viewportChanged||!et.eq(r.startState.facet(va),r.state.facet(va),r.view.viewport.from,r.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(r)&&(n=!0);else{n=!0;let s=[];for(let i of t){let o=e.indexOf(i);o<0?s.push(new jd(this.view,i)):(this.gutters[o].update(r),s.push(this.gutters[o]))}for(let i of this.gutters)i.dom.remove(),s.indexOf(i)<0&&i.destroy();for(let i of s)i.config.side=="after"?this.getDOMAfter().appendChild(i.dom):this.dom.appendChild(i.dom);this.gutters=s}return n}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>Se.scrollMargins.of(e=>{let t=e.plugin(r);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==dt.LTR?{left:n,right:s}:{right:n,left:s}})});function qd(r){return Array.isArray(r)?r:[r]}function eu(r,e,t){for(;r.value&&r.from<=t;)r.from==t&&e.push(r.value),r.next()}class V5{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=et.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:s}=this,i=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let a=new kg(e,o,i,n);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,o,i,n);this.height=t.bottom,this.i++}line(e,t,n){let s=[];eu(this.cursor,s,t.from),n.length&&(s=s.concat(n));let i=this.gutter.config.lineMarker(e,t,s);i&&s.unshift(i);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),s=n?[n]:null;for(let i of e.state.facet(D5)){let o=i(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class jd{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,s=>{let i=s.target,o;if(i!=this.dom&&this.dom.contains(i)){for(;i.parentNode!=this.dom;)i=i.parentNode;let l=i.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=s.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,a,s)&&s.preventDefault()});this.markers=qd(t.markers(e)),t.initialSpacer&&(this.spacer=new kg(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=qd(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let n=e.view.viewport;return!et.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class kg{constructor(e,t,n,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,s)}update(e,t,n,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),z5(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let n="cm-gutterElement",s=this.dom.firstChild;for(let i=0,o=0;;){let a=o,l=i<t.length?t[i++]:null,c=!1;if(l){let u=l.elementClass;u&&(n+=" "+u);for(let h=o;h<this.markers.length;h++)if(this.markers[h].compare(l)){a=h,c=!0;break}}else a=this.markers.length;for(;o<a;){let u=this.markers[o++];if(u.toDOM){u.destroy(s);let h=s.nextSibling;s.remove(),s=h}}if(!l)break;l.toDOM&&(c?s=s.nextSibling:this.dom.insertBefore(l.toDOM(e),s)),c&&o++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}}function z5(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(!r[t].compare(e[t]))return!1;return!0}const N5=Qe.define(),W5=Qe.define(),Ls=Qe.define({combine(r){return on(r,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let s in t){let i=n[s],o=t[s];n[s]=i?(a,l,c)=>i(a,l,c)||o(a,l,c):o}return n}})}});class Vl extends Sn{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function zl(r,e){return r.state.facet(Ls).formatNumber(e,r.state)}const q5=Wi.compute([Ls],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(N5)},lineMarker(e,t,n){return n.some(s=>s.toDOM)?null:new Vl(zl(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let s of e.state.facet(W5)){let i=s(e,t,n);if(i)return i}return null},lineMarkerChange:e=>e.startState.facet(Ls)!=e.state.facet(Ls),initialSpacer(e){return new Vl(zl(e,Yd(e.state.doc.lines)))},updateSpacer(e,t){let n=zl(t.view,Yd(t.view.state.doc.lines));return n==e.number?e:new Vl(n)},domEventHandlers:r.facet(Ls).domEventHandlers,side:"before"}));function j5(r={}){return[Ls.of(r),yg(),q5]}function Yd(r){let e=9;for(;e<r;)e=e*10+9;return e}const Y5=new class extends Sn{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},F5=va.compute(["selection"],r=>{let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.head).from;s>t&&(t=s,e.push(Y5.range(s)))}return et.of(e)});function U5(){return F5}const wg=1024;let G5=0;class Sr{constructor(e,t){this.from=e,this.to=t}}class Fe{constructor(e={}){this.id=G5++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Pt.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}}Fe.closedBy=new Fe({deserialize:r=>r.split(" ")});Fe.openedBy=new Fe({deserialize:r=>r.split(" ")});Fe.group=new Fe({deserialize:r=>r.split(" ")});Fe.isolate=new Fe({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});Fe.contextHash=new Fe({perNode:!0});Fe.lookAhead=new Fe({perNode:!0});Fe.mounted=new Fe({perNode:!0});class Ws{constructor(e,t,n,s=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=s}static get(e){return e&&e.props&&e.props[Fe.mounted.id]}}const H5=Object.create(null);class Pt{constructor(e,t,n,s=0){this.name=e,this.props=t,this.id=n,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):H5,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new Pt(e.name||"",t,e.id,n);if(e.props){for(let i of e.props)if(Array.isArray(i)||(i=i(s)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(Fe.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let s of n.split(" "))t[s]=e[n];return n=>{for(let s=n.prop(Fe.group),i=-1;i<(s?s.length:0);i++){let o=t[i<0?n.name:s[i]];if(o)return o}}}}Pt.none=new Pt("",Object.create(null),0,8);class Co{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let s=null;for(let i of e){let o=i(n);if(o){s||(s=Object.assign({},n.props));let a=o[1],l=o[0];l.combine&&l.id in s&&(a=l.combine(s[l.id],a)),s[l.id]=a}}t.push(s?new Pt(n.name,s,n.id,n.flags):n)}return new Co(t)}}const Ko=new WeakMap,Fd=new WeakMap;var lt;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(lt||(lt={}));class at{constructor(e,t,n,s,i){if(this.type=e,this.children=t,this.positions=n,this.length=s,this.props=null,i&&i.length){this.props=Object.create(null);for(let[o,a]of i)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=Ws.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let s=n.toString();s&&(t&&(t+=","),t+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Ia(this.topNode,e)}cursorAt(e,t=0,n=0){let s=Ko.get(this)||this.topNode,i=new Ia(s);return i.moveTo(e,t),Ko.set(this,i._tree),i}get topNode(){return new Wt(this,0,0,null)}resolve(e,t=0){let n=to(Ko.get(this)||this.topNode,e,t,!1);return Ko.set(this,n),n}resolveInner(e,t=0){let n=to(Fd.get(this)||this.topNode,e,t,!0);return Fd.set(this,n),n}resolveStack(e,t=0){return eC(this,e,t)}iterate(e){let{enter:t,leave:n,from:s=0,to:i=this.length}=e,o=e.mode||0,a=(o&lt.IncludeAnonymous)>0;for(let l=this.cursor(o|lt.IncludeAnonymous);;){let c=!1;if(l.from<=i&&l.to>=s&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:eh(Pt.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,s)=>new at(this.type,t,n,s,this.propValues),e.makeTree||((t,n,s)=>new at(Pt.none,t,n,s)))}static build(e){return tC(e)}}at.empty=new at(Pt.none,[],[],0);class Ku{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ku(this.buffer,this.index)}}class jn{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return Pt.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],s=this.set.types[t],i=s.name;if(/\W/.test(i)&&!s.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return i+"("+o.join(",")+")"}findChild(e,t,n,s,i){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(Sg(i,s,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let s=this.buffer,i=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){i[l++]=s[a++],i[l++]=s[a++]-n;let c=i[l++]=s[a++]-n;i[l++]=s[a++]-e,o=Math.max(o,c)}return new jn(i,o,this.set)}}function Sg(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function to(r,e,t,n){for(var s;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let o=!n&&r instanceof Wt&&r.index<0?null:r.parent;if(!o)return r;r=o}let i=n?0:lt.IgnoreOverlays;if(n)for(let o=r,a=o.parent;a;o=a,a=o.parent)o instanceof Wt&&o.index<0&&((s=a.enter(e,t,i))===null||s===void 0?void 0:s.from)!=o.from&&(r=a);for(;;){let o=r.enter(e,t,i);if(!o)return r;r=o}}class $g{cursor(e=0){return new Ia(this,e)}getChild(e,t=null,n=null){let s=Ud(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return Ud(this,e,t,n)}resolve(e,t=0){return to(this,e,t,!1)}resolveInner(e,t=0){return to(this,e,t,!0)}matchContext(e){return tu(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let s=t.lastChild;if(!s||s.to!=t.to)break;s.type.isError&&s.from==s.to?(n=t,t=s.prevSibling):t=s}return n}get node(){return this}get next(){return this.parent}}class Wt extends $g{constructor(e,t,n,s){super(),this._tree=e,this.from=t,this.index=n,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,s,i=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let u=a[e],h=l[e]+o.from,f;if(!(!(i&lt.EnterBracketed&&u instanceof at&&(f=Ws.get(u))&&!f.overlay&&f.bracketed&&n>=h&&n<=h+u.length)&&!Sg(s,n,h,h+u.length))){if(u instanceof jn){if(i&lt.ExcludeBuffers)continue;let p=u.findChild(0,u.buffer.length,t,n-h,s);if(p>-1)return new en(new K5(o,u,e,h),null,p)}else if(i&lt.IncludeAnonymous||!u.type.isAnonymous||Ju(u)){let p;if(!(i&lt.IgnoreMounts)&&(p=Ws.get(u))&&!p.overlay)return new Wt(p.tree,h,e,o);let g=new Wt(u,h,e,o);return i&lt.IncludeAnonymous||!g.type.isAnonymous?g:g.nextChild(t<0?u.children.length-1:0,t,n,s,i)}}}if(i&lt.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let s;if(!(n&lt.IgnoreOverlays)&&(s=Ws.get(this._tree))&&s.overlay){let i=e-this.from,o=n&lt.EnterBracketed&&s.bracketed;for(let{from:a,to:l}of s.overlay)if((t>0||o?a<=i:a<i)&&(t<0||o?l>=i:l>i))return new Wt(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Ud(r,e,t,n){let s=r.cursor(),i=[];if(!s.firstChild())return i;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return i}for(;;){if(n!=null&&s.type.is(n))return i;if(s.type.is(e)&&i.push(s.node),!s.nextSibling())return n==null?i:[]}}function tu(r,e,t=e.length-1){for(let n=r;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}class K5{constructor(e,t,n,s){this.parent=e,this.buffer=t,this.index=n,this.start=s}}class en extends $g{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,n);return i<0?null:new en(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&lt.ExcludeBuffers)return null;let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new en(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new en(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new en(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,s=this.index+4,i=n.buffer[this.index+3];if(i>s){let o=n.buffer[this.index+1];e.push(n.slice(s,i,o)),t.push(0)}return new at(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Cg(r){if(!r.length)return null;let e=0,t=r[0];for(let i=1;i<r.length;i++){let o=r[i];(o.from>t.from||o.to<t.to)&&(t=o,e=i)}let n=t instanceof Wt&&t.index<0?null:t.parent,s=r.slice();return n?s[e]=n:s.splice(e,1),new J5(s,t)}class J5{constructor(e,t){this.heads=e,this.node=t}get next(){return Cg(this.heads)}}function eC(r,e,t){let n=r.resolveInner(e,t),s=null;for(let i=n instanceof Wt?n:n.context.parent;i;i=i.parent)if(i.index<0){let o=i.parent;(s||(s=[n])).push(o.resolve(e,t)),i=o}else{let o=Ws.get(i.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new Wt(o.tree,o.overlay[0].from+i.from,-1,i);(s||(s=[n])).push(to(a,e,t,!1))}}return s?Cg(s):n}class Ia{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~lt.EnterBracketed,e instanceof Wt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=n+s.buffer[e+1],this.to=n+s.buffer[e+2],!0}yield(e){return e?e instanceof Wt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:s}=this.buffer,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&lt.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&lt.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&lt.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let s=n<0?0:this.stack[n]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(s)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let i=0;i<this.index;i++)if(s.buffer.buffer[i+3]<this.index)return!1;({index:t,parent:n}=s)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let i=t+e,o=e<0?-1:n._tree.children.length;i!=o;i+=e){let a=n._tree.children[i];if(this.mode&lt.IncludeAnonymous||a instanceof jn||!a.type.isAnonymous||Ju(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let s=this.index,i=this.stack.length;i>=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,n=i+1;break e}s=this.stack[--i]}for(let s=n;s<this.stack.length;s++)t=new en(this.buffer,t,this.stack[s]);return this.bufferNode=new en(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(s=!0)}for(;;){if(s&&t&&t(this),s=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,s=!0}}}matchContext(e){if(!this.buffer)return tu(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let s=e.length-1,i=this.stack.length-1;s>=0;i--){if(i<0)return tu(this._tree,e,s);let o=n[t.buffer[this.stack[i]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function Ju(r){return r.children.some(e=>e instanceof jn||!e.type.isAnonymous||Ju(e))}function tC(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:s=wg,reused:i=[],minRepeatType:o=n.types.length}=r,a=Array.isArray(t)?new Ku(t,t.length):t,l=n.types,c=0,u=0;function h(R,V,L,ae,ce,Oe){let{id:q,start:X,end:E,size:U}=a,j=u,W=c;if(U<0)if(a.next(),U==-1){let fe=i[q];L.push(fe),ae.push(X-R);return}else if(U==-3){c=q;return}else if(U==-4){u=q;return}else throw new RangeError(`Unrecognized record size: ${U}`);let I=l[q],z,xe,J=X-R;if(E-X<=s&&(xe=x(a.pos-V,ce))){let fe=new Uint16Array(xe.size-xe.skip),S=a.pos-xe.size,w=fe.length;for(;a.pos>S;)w=b(xe.start,fe,w);z=new jn(fe,E-xe.start,n),J=xe.start-R}else{let fe=a.pos-U;a.next();let S=[],w=[],M=q>=o?q:-1,B=0,K=E;for(;a.pos>fe;)M>=0&&a.id==M&&a.size>=0?(a.end<=K-s&&(g(S,w,X,B,a.end,K,M,j,W),B=S.length,K=a.end),a.next()):Oe>2500?f(X,fe,S,w):h(X,fe,S,w,M,Oe+1);if(M>=0&&B>0&&B<S.length&&g(S,w,X,B,X,K,M,j,W),S.reverse(),w.reverse(),M>-1&&B>0){let oe=p(I,W);z=eh(I,S,w,0,S.length,0,E-X,oe,oe)}else z=O(I,S,w,E-X,j-E,W)}L.push(z),ae.push(J)}function f(R,V,L,ae){let ce=[],Oe=0,q=-1;for(;a.pos>V;){let{id:X,start:E,end:U,size:j}=a;if(j>4)a.next();else{if(q>-1&&E<q)break;q<0&&(q=U-s),ce.push(X,E,U),Oe++,a.next()}}if(Oe){let X=new Uint16Array(Oe*4),E=ce[ce.length-2];for(let U=ce.length-3,j=0;U>=0;U-=3)X[j++]=ce[U],X[j++]=ce[U+1]-E,X[j++]=ce[U+2]-E,X[j++]=j;L.push(new jn(X,ce[2]-E,n)),ae.push(E-R)}}function p(R,V){return(L,ae,ce)=>{let Oe=0,q=L.length-1,X,E;if(q>=0&&(X=L[q])instanceof at){if(!q&&X.type==R&&X.length==ce)return X;(E=X.prop(Fe.lookAhead))&&(Oe=ae[q]+X.length+E)}return O(R,L,ae,ce,Oe,V)}}function g(R,V,L,ae,ce,Oe,q,X,E){let U=[],j=[];for(;R.length>ae;)U.push(R.pop()),j.push(V.pop()+L-ce);R.push(O(n.types[q],U,j,Oe-ce,X-Oe,E)),V.push(ce-L)}function O(R,V,L,ae,ce,Oe,q){if(Oe){let X=[Fe.contextHash,Oe];q=q?[X].concat(q):[X]}if(ce>25){let X=[Fe.lookAhead,ce];q=q?[X].concat(q):[X]}return new at(R,V,L,ae,q)}function x(R,V){let L=a.fork(),ae=0,ce=0,Oe=0,q=L.end-s,X={size:0,start:0,skip:0};e:for(let E=L.pos-R;L.pos>E;){let U=L.size;if(L.id==V&&U>=0){X.size=ae,X.start=ce,X.skip=Oe,Oe+=4,ae+=4,L.next();continue}let j=L.pos-U;if(U<0||j<E||L.start<q)break;let W=L.id>=o?4:0,I=L.start;for(L.next();L.pos>j;){if(L.size<0)if(L.size==-3||L.size==-4)W+=4;else break e;else L.id>=o&&(W+=4);L.next()}ce=I,ae+=U,Oe+=W}return(V<0||ae==R)&&(X.size=ae,X.start=ce,X.skip=Oe),X.size>4?X:void 0}function b(R,V,L){let{id:ae,start:ce,end:Oe,size:q}=a;if(a.next(),q>=0&&ae<o){let X=L;if(q>4){let E=a.pos-(q-4);for(;a.pos>E;)L=b(R,V,L)}V[--L]=X,V[--L]=Oe-R,V[--L]=ce-R,V[--L]=ae}else q==-3?c=ae:q==-4&&(u=ae);return L}let k=[],$=[];for(;a.pos>0;)h(r.start||0,r.bufferStart||0,k,$,-1,0);let P=(e=r.length)!==null&&e!==void 0?e:k.length?$[0]+k[0].length:0;return new at(l[r.topID],k.reverse(),$.reverse(),P)}const Gd=new WeakMap;function ba(r,e){if(!r.isAnonymous||e instanceof jn||e.type!=r)return 1;let t=Gd.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof at)){t=1;break}t+=ba(r,n)}Gd.set(e,t)}return t}function eh(r,e,t,n,s,i,o,a,l){let c=0;for(let g=n;g<s;g++)c+=ba(r,e[g]);let u=Math.ceil(c*1.5/8),h=[],f=[];function p(g,O,x,b,k){for(let $=x;$<b;){let P=$,R=O[$],V=ba(r,g[$]);for($++;$<b;$++){let L=ba(r,g[$]);if(V+L>=u)break;V+=L}if($==P+1){if(V>u){let L=g[P];p(L.children,L.positions,0,L.children.length,O[P]+k);continue}h.push(g[P])}else{let L=O[$-1]+g[$-1].length-R;h.push(eh(r,g,O,P,$,R,L,null,l))}f.push(R+k-i)}}return p(e,t,n,s,0),(a||l)(h,f,o)}class Qg{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof en?this.setBuffer(e.context.buffer,e.index,t):e instanceof Wt&&this.map.set(e.tree,t)}get(e){return e instanceof en?this.getBuffer(e.context.buffer,e.index):e instanceof Wt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class bn{constructor(e,t,n,s,i=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=s,this.open=(i?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let s=[new bn(0,e.length,e,0,!1,n)];for(let i of t)i.to>e.length&&s.push(i);return s}static applyChanges(e,t,n=128){if(!t.length)return e;let s=[],i=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let u=a<t.length?t[a]:null,h=u?u.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let f=o;if(l>=f.from||h<=f.to||c){let p=Math.max(f.from,l)-c,g=Math.min(f.to,h)-c;f=p>=g?null:new bn(p,g,f.tree,f.offset+c,a>0,!!u)}if(f&&s.push(f),o.to>h)break;o=i<e.length?e[i++]:null}if(!u)break;l=u.toA,c=u.toA-u.toB}return s}}class th{startParse(e,t,n){return typeof e=="string"&&(e=new rC(e)),n=n?n.length?n.map(s=>new Sr(s.from,s.to)):[new Sr(0,0)]:[new Sr(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let s=this.startParse(e,t,n);for(;;){let i=s.advance();if(i)return i}}}class rC{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function Pg(r){return(e,t,n,s)=>new sC(e,r,t,n,s)}class Hd{constructor(e,t,n,s,i,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=s,this.target=i,this.from=o}}function Kd(r){if(!r.length||r.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}class nC{constructor(e,t,n,s,i,o,a,l){this.parser=e,this.predicate=t,this.mounts=n,this.index=s,this.start=i,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}}const ru=new Fe({perNode:!0});class sC{constructor(e,t,n,s,i){this.nest=t,this.input=n,this.fragments=s,this.ranges=i,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new at(n.type,n.children,n.positions,n.length,n.propValues.concat([[ru,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[Fe.mounted.id]=new Ws(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].from<e&&(e=Math.min(e,this.inner[t].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].parse.stopAt(e)}startInner(){let e=new aC(this.fragments),t=null,n=null,s=new Ia(new Wt(this.baseTree,this.ranges[0].from,0,null),lt.IncludeAnonymous|lt.IgnoreMounts);e:for(let i,o;;){let a=!0,l;if(this.stoppedAt!=null&&s.from>=this.stoppedAt)a=!1;else if(e.hasNode(s)){if(t){let c=t.mounts.find(u=>u.frag.from<=s.from&&u.frag.to>=s.to&&u.mount.overlay);if(c)for(let u of c.mount.overlay){let h=u.from+c.pos,f=u.to+c.pos;h>=s.from&&f<=s.to&&!t.ranges.some(p=>p.from<f&&p.to>h)&&t.ranges.push({from:h,to:f})}}a=!1}else if(n&&(o=iC(n.ranges,s.from,s.to)))a=o!=2;else if(!s.type.isAnonymous&&(i=this.nest(s,this.input))&&(s.from<s.to||!i.overlay)){s.tree||(oC(s),t&&t.depth++,n&&n.depth++);let c=e.findMounts(s.from,i.parser);if(typeof i.overlay=="function")t=new nC(i.parser,i.overlay,c,this.inner.length,s.from,!!i.bracketed,s.tree,t);else{let u=tf(this.ranges,i.overlay||(s.from<s.to?[new Sr(s.from,s.to)]:[]));u.length&&Kd(u),(u.length||!i.overlay)&&this.inner.push(new Hd(i.parser,u.length?i.parser.startParse(this.input,rf(c,u),u):i.parser.startParse(""),i.overlay?i.overlay.map(h=>new Sr(h.from-s.from,h.to-s.from)):null,!!i.bracketed,s.tree,u.length?u[0].from:s.from)),i.overlay?u.length&&(n={ranges:u,depth:0,prev:n}):a=!1}}else if(t&&(l=t.predicate(s))&&(l===!0&&(l=new Sr(s.from,s.to)),l.from<l.to)){let c=t.ranges.length-1;c>=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&s.firstChild())t&&t.depth++,n&&n.depth++;else for(;!s.nextSibling();){if(!s.parent())break e;if(t&&!--t.depth){let c=tf(this.ranges,t.ranges);c.length&&(Kd(c),this.inner.splice(t.index,0,new Hd(t.parser,t.parser.startParse(this.input,rf(t.mounts,c),c),t.ranges.map(u=>new Sr(u.from-t.start,u.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}}function iC(r,e,t){for(let n of r){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function Jd(r,e,t,n,s,i){if(e<t){let o=r.buffer[e+1];n.push(r.slice(e,t,o)),s.push(o-i)}}function oC(r){let{node:e}=r,t=[],n=e.context.buffer;do t.push(r.index),r.parent();while(!r.tree);let s=r.tree,i=s.children.indexOf(n),o=s.children[i],a=o.buffer,l=[i];function c(u,h,f,p,g,O){let x=t[O],b=[],k=[];Jd(o,u,x,b,k,p);let $=a[x+1],P=a[x+2];l.push(b.length);let R=O?c(x+4,a[x+3],o.set.types[a[x]],$,P-$,O-1):e.toTree();return b.push(R),k.push($-p),Jd(o,a[x+3],h,b,k,p),new at(f,b,k,g)}s.children[i]=c(0,a.length,Pt.none,0,o.length,t.length-1);for(let u of l){let h=r.tree.children[u],f=r.tree.positions[u];r.yield(new Wt(h,f+r.from,u,r._tree))}}class ef{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(lt.IncludeAnonymous|lt.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from<n;)t.to>=e&&t.enter(n,1,lt.IgnoreOverlays|lt.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof at)t=t.children[0];else break}return!1}}let aC=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(ru))!==null&&t!==void 0?t:n.to,this.inner=new ef(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(ru))!==null&&e!==void 0?e:t.to,this.inner=new ef(t.tree,-t.offset)}}findMounts(e,t){var n;let s=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let i=this.inner.cursor.node;i;i=i.parent){let o=(n=i.tree)===null||n===void 0?void 0:n.prop(Fe.mounted);if(o&&o.parser==t)for(let a=this.fragI;a<this.fragments.length;a++){let l=this.fragments[a];if(l.from>=i.to)break;l.tree==this.curFrag.tree&&s.push({frag:l,pos:i.from-l.offset,mount:o})}}}return s}};function tf(r,e){let t=null,n=e;for(let s=1,i=0;s<r.length;s++){let o=r[s-1].to,a=r[s].from;for(;i<n.length;i++){let l=n[i];if(l.from>=a)break;l.to<=o||(t||(n=t=e.slice()),l.from<o?(t[i]=new Sr(l.from,o),l.to>a&&t.splice(i+1,0,new Sr(a,l.to))):l.to>a?t[i--]=new Sr(a,l.to):t.splice(i--,1))}}return n}function lC(r,e,t,n){let s=0,i=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let u=s==r.length?1e9:o?r[s].to:r[s].from,h=i==e.length?1e9:a?e[i].to:e[i].from;if(o!=a){let f=Math.max(l,t),p=Math.min(u,h,n);f<p&&c.push(new Sr(f,p))}if(l=Math.min(u,h),l==1e9)break;u==l&&(o?(o=!1,s++):o=!0),h==l&&(a?(a=!1,i++):a=!0)}return c}function rf(r,e){let t=[];for(let{pos:n,mount:s,frag:i}of r){let o=n+(s.overlay?s.overlay[0].from:0),a=o+s.tree.length,l=Math.max(i.from,o),c=Math.min(i.to,a);if(s.overlay){let u=s.overlay.map(f=>new Sr(f.from+n,f.to+n)),h=lC(e,u,l,c);for(let f=0,p=l;;f++){let g=f==h.length,O=g?c:h[f].from;if(O>p&&t.push(new bn(p,O,s.tree,-o,i.from>=p||i.openStart,i.to<=O||i.openEnd)),g)break;p=h[f].to}}else t.push(new bn(l,c,s.tree,-o,i.from>=o||i.openStart,i.to<=a||i.openEnd))}return t}let cC=0;class mr{constructor(e,t,n,s){this.name=e,this.set=t,this.base=n,this.modified=s,this.id=cC++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof mr&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let s=new mr(n,[],null,[]);if(s.set.push(s),t)for(let i of t.set)s.set.push(i);return s}static defineModifier(e){let t=new Va(e);return n=>n.modified.indexOf(t)>-1?n:Va.get(n.base||n,n.modified.concat(t).sort((s,i)=>s.id-i.id))}}let uC=0;class Va{constructor(e){this.name=e,this.instances=[],this.id=uC++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&hC(t,a.modified));if(n)return n;let s=[],i=new mr(e.name,s,e,t);for(let a of t)a.instances.push(i);let o=dC(t);for(let a of e.set)if(!a.modified.length)for(let l of o)s.push(Va.get(a,l));return i}}function hC(r,e){return r.length==e.length&&r.every((t,n)=>t==e[n])}function dC(r){let e=[[]];for(let t=0;t<r.length;t++)for(let n=0,s=e.length;n<s;n++)e.push(e[n].concat(r[t]));return e.sort((t,n)=>n.length-t.length)}function ui(r){let e=Object.create(null);for(let t in r){let n=r[t];Array.isArray(n)||(n=[n]);for(let s of t.split(" "))if(s){let i=[],o=2,a=s;for(let h=0;;){if(a=="..."&&h>0&&h+3==s.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+s);if(i.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==s.length)break;let p=s[h++];if(h==s.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+s);a=s.slice(h)}let l=i.length-1,c=i[l];if(!c)throw new RangeError("Invalid path: "+s);let u=new ro(n,o,l>0?i.slice(0,l):null);e[c]=u.sort(e[c])}}return Tg.add(e)}const Tg=new Fe({combine(r,e){let t,n,s;for(;r||e;){if(!r||e&&r.depth>=e.depth?(s=e,e=e.next):(s=r,r=r.next),t&&t.mode==s.mode&&!s.context&&!t.context)continue;let i=new ro(s.tags,s.mode,s.context);t?t.next=i:n=i,t=i}return n}});class ro{constructor(e,t,n,s){this.tags=e,this.mode=t,this.context=n,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}ro.empty=new ro([],2,null);function Mg(r,e){let t=Object.create(null);for(let i of r)if(!Array.isArray(i.tag))t[i.tag.id]=i.class;else for(let o of i.tag)t[o.id]=i.class;let{scope:n,all:s=null}=e||{};return{style:i=>{let o=s;for(let a of i)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function fC(r,e){let t=null;for(let n of r){let s=n.style(e);s&&(t=t?t+" "+s:s)}return t}function pC(r,e,t,n=0,s=r.length){let i=new mC(n,Array.isArray(e)?e:[e],t);i.highlightRange(r.cursor(),n,s,"",i.highlighters),i.flush(s)}class mC{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,s,i){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(i=this.highlighters.filter(p=>!p.scope||p.scope(o)));let c=s,u=gC(e)||ro.empty,h=fC(i,u.tags);if(h&&(c&&(c+=" "),c+=h,u.mode==1&&(s+=(s?" ":"")+h)),this.startSpan(Math.max(t,a),c),u.opaque)return;let f=e.tree&&e.tree.prop(Fe.mounted);if(f&&f.overlay){let p=e.node.enter(f.overlay[0].from+a,1),g=this.highlighters.filter(x=>!x.scope||x.scope(f.tree.type)),O=e.firstChild();for(let x=0,b=a;;x++){let k=x<f.overlay.length?f.overlay[x]:null,$=k?k.from+a:l,P=Math.max(t,b),R=Math.min(n,$);if(P<R&&O)for(;e.from<R&&(this.highlightRange(e,P,R,s,i),this.startSpan(Math.min(R,e.to),c),!(e.to>=$||!e.nextSibling())););if(!k||$>n)break;b=k.to+a,b>t&&(this.highlightRange(p.cursor(),Math.max(t,k.from+a),Math.min(n,b),"",g),this.startSpan(Math.min(n,b),c))}O&&e.parent()}else if(e.firstChild()){f&&(s="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,s,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}}function gC(r){let e=r.type.prop(Tg);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}const we=mr.define,Jo=we(),En=we(),nf=we(En),sf=we(En),Dn=we(),ea=we(Dn),Nl=we(Dn),Ur=we(),is=we(Ur),Yr=we(),Fr=we(),nu=we(),Pi=we(nu),ta=we(),C={comment:Jo,lineComment:we(Jo),blockComment:we(Jo),docComment:we(Jo),name:En,variableName:we(En),typeName:nf,tagName:we(nf),propertyName:sf,attributeName:we(sf),className:we(En),labelName:we(En),namespace:we(En),macroName:we(En),literal:Dn,string:ea,docString:we(ea),character:we(ea),attributeValue:we(ea),number:Nl,integer:we(Nl),float:we(Nl),bool:we(Dn),regexp:we(Dn),escape:we(Dn),color:we(Dn),url:we(Dn),keyword:Yr,self:we(Yr),null:we(Yr),atom:we(Yr),unit:we(Yr),modifier:we(Yr),operatorKeyword:we(Yr),controlKeyword:we(Yr),definitionKeyword:we(Yr),moduleKeyword:we(Yr),operator:Fr,derefOperator:we(Fr),arithmeticOperator:we(Fr),logicOperator:we(Fr),bitwiseOperator:we(Fr),compareOperator:we(Fr),updateOperator:we(Fr),definitionOperator:we(Fr),typeOperator:we(Fr),controlOperator:we(Fr),punctuation:nu,separator:we(nu),bracket:Pi,angleBracket:we(Pi),squareBracket:we(Pi),paren:we(Pi),brace:we(Pi),content:Ur,heading:is,heading1:we(is),heading2:we(is),heading3:we(is),heading4:we(is),heading5:we(is),heading6:we(is),contentSeparator:we(Ur),list:we(Ur),quote:we(Ur),emphasis:we(Ur),strong:we(Ur),link:we(Ur),monospace:we(Ur),strikethrough:we(Ur),inserted:we(),deleted:we(),changed:we(),invalid:we(),meta:ta,documentMeta:we(ta),annotation:we(ta),processingInstruction:we(ta),definition:mr.defineModifier("definition"),constant:mr.defineModifier("constant"),function:mr.defineModifier("function"),standard:mr.defineModifier("standard"),local:mr.defineModifier("local"),special:mr.defineModifier("special")};for(let r in C){let e=C[r];e instanceof mr&&(e.name=r)}Mg([{tag:C.link,class:"tok-link"},{tag:C.heading,class:"tok-heading"},{tag:C.emphasis,class:"tok-emphasis"},{tag:C.strong,class:"tok-strong"},{tag:C.keyword,class:"tok-keyword"},{tag:C.atom,class:"tok-atom"},{tag:C.bool,class:"tok-bool"},{tag:C.url,class:"tok-url"},{tag:C.labelName,class:"tok-labelName"},{tag:C.inserted,class:"tok-inserted"},{tag:C.deleted,class:"tok-deleted"},{tag:C.literal,class:"tok-literal"},{tag:C.string,class:"tok-string"},{tag:C.number,class:"tok-number"},{tag:[C.regexp,C.escape,C.special(C.string)],class:"tok-string2"},{tag:C.variableName,class:"tok-variableName"},{tag:C.local(C.variableName),class:"tok-variableName tok-local"},{tag:C.definition(C.variableName),class:"tok-variableName tok-definition"},{tag:C.special(C.variableName),class:"tok-variableName2"},{tag:C.definition(C.propertyName),class:"tok-propertyName tok-definition"},{tag:C.typeName,class:"tok-typeName"},{tag:C.namespace,class:"tok-namespace"},{tag:C.className,class:"tok-className"},{tag:C.macroName,class:"tok-macroName"},{tag:C.propertyName,class:"tok-propertyName"},{tag:C.operator,class:"tok-operator"},{tag:C.comment,class:"tok-comment"},{tag:C.meta,class:"tok-meta"},{tag:C.invalid,class:"tok-invalid"},{tag:C.punctuation,class:"tok-punctuation"}]);var Wl;const ms=new Fe;function rh(r){return Qe.define({combine:r?e=>e.concat(r):void 0})}const nh=new Fe;class $r{constructor(e,t,n=[],s=""){this.data=e,this.name=s,tt.prototype.hasOwnProperty("tree")||Object.defineProperty(tt.prototype,"tree",{get(){return ft(this)}}),this.parser=t,this.extension=[Yn.of(this),tt.languageData.of((i,o,a)=>{let l=of(i,o,a),c=l.type.prop(ms);if(!c)return[];let u=i.facet(c),h=l.type.prop(nh);if(h){let f=l.resolve(o-l.from,a);for(let p of h)if(p.test(f,i)){let g=i.facet(p.facet);return p.type=="replace"?g:g.concat(u)}}return u})].concat(n)}isActiveAt(e,t,n=-1){return of(e,t,n).type.prop(ms)==this.data}findRegions(e){let t=e.facet(Yn);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],s=(i,o)=>{if(i.prop(ms)==this.data){n.push({from:o,to:o+i.length});return}let a=i.prop(Fe.mounted);if(a){if(a.tree.prop(ms)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+i.length});return}else if(a.overlay){let l=n.length;if(s(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<i.children.length;l++){let c=i.children[l];c instanceof at&&s(c,i.positions[l]+o)}};return s(ft(e),0),n}get allowsNesting(){return!0}}$r.setState=je.define();function of(r,e,t){let n=r.facet(Yn),s=ft(r).topNode;if(!n||n.allowsNesting)for(let i=s;i;i=i.enter(e,t,lt.ExcludeBuffers|lt.EnterBracketed))i.type.isTop&&(s=i);return s}class ri extends $r{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=rh(e.languageData);return new ri(t,e.parser.configure({props:[ms.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new ri(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ft(r){let e=r.field($r.state,!1);return e?e.tree:at.empty}class OC{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let Ti=null;class no{constructor(e,t,n=[],s,i,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=s,this.treeLen=i,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new no(e,t,[],at.empty,0,n,[],null)}startParse(){return this.parser.startParse(new OC(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=at.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let s=this.parse.advance();if(s)if(this.fragments=this.withoutTempSkipped(bn.addTree(s,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=s,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(bn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ti;Ti=this;try{return e()}finally{Ti=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=af(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:s,treeLen:i,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,u,h,f)=>l.push({fromA:c,toA:u,fromB:h,toB:f})),n=bn.applyChanges(n,l),s=at.empty,i=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let u=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);u<h&&a.push({from:u,to:h})}}}return new no(this.parser,t,n,s,i,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:s,to:i}=this.skipped[n];s<e.to&&i>e.from&&(this.fragments=af(this.fragments,s,i),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends th{createParse(t,n,s){let i=s[0].from,o=s[s.length-1].to;return{parsedPos:i,advance(){let l=Ti;if(l){for(let c of s)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new at(Pt.none,[],[],o-i)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ti}}function af(r,e,t){return bn.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}class ni{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new ni(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=no.create(e.facet(Yn).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new ni(n)}}$r.state=At.define({create:ni.init,update(r,e){for(let t of e.effects)if(t.is($r.setState))return t.value;return e.startState.facet(Yn)!=e.state.facet(Yn)?ni.init(e.state):r.apply(e)}});let Ag=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Ag=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const ql=typeof navigator<"u"&&(!((Wl=navigator.scheduling)===null||Wl===void 0)&&Wl.isInputPending)?()=>navigator.scheduling.isInputPending():null,vC=bt.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field($r.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field($r.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Ag(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:s}}=this.view,i=n.field($r.state);if(i.tree==i.context.tree&&i.context.isDone(s+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!ql?Math.max(25,e.timeRemaining()-5):1e9),a=i.context.treeLen<s&&n.doc.length>s+1e3,l=i.context.work(()=>ql&&ql()||Date.now()>o,s+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:$r.setState.of(new ni(i.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>sr(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Yn=Qe.define({combine(r){return r.length?r[0]:null},enables:r=>[$r.state,vC,Se.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]});class so{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class za{constructor(e,t,n,s,i,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=s,this.loadFunc=i,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new za(e.name,(e.alias||[]).concat(e.name).map(s=>s.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let s of e)if(s.filename&&s.filename.test(t))return s;let n=/\.([^.]+)$/.exec(t);if(n){for(let s of e)if(s.extensions.indexOf(n[1])>-1)return s}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let s of e)if(s.alias.some(i=>i==t))return s;if(n)for(let s of e)for(let i of s.alias){let o=t.indexOf(i);if(o>-1&&(i.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+i.length])))return s}return null}}const bC=Qe.define(),Qo=Qe.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function Na(r){let e=r.facet(Qo);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function io(r,e){let t="",n=r.tabSize,s=r.facet(Qo)[0];if(s==" "){for(;e>=n;)t+=" ",e-=n;s=" "}for(let i=0;i<e;i++)t+=s;return t}function sh(r,e){r instanceof tt&&(r=new vl(r));for(let n of r.state.facet(bC)){let s=n(r,e);if(s!==void 0)return s}let t=ft(r.state);return t.length>=e?xC(r,t,e):null}class vl{constructor(e,t={}){this.state=e,this.options=t,this.unit=Na(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:i}=this.options;return s!=null&&s>=n.from&&s<=n.to?i&&s==e?{text:"",from:e}:(t<0?s<e:s<=e)?{text:n.text.slice(s-n.from),from:s}:{text:n.text.slice(0,s-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:s}=this.lineAt(e,t);return n.slice(e-s,Math.min(n.length,e+100-s))}column(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.countColumn(n,e-s),o=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return o>-1&&(i+=o-this.countColumn(n,n.search(/\S|$/))),i}countColumn(e,t=e.length){return Zr(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.options.overrideIndentation;if(i){let o=i(s);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Po=new Fe;function xC(r,e,t){let n=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=n.node){let i=[];for(let o=s;o&&!(o.from<n.node.from||o.to>n.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)i.push(o);for(let o=i.length-1;o>=0;o--)n={node:i[o],next:n}}return _g(n,r,t)}function _g(r,e,t){for(let n=r;n;n=n.next){let s=kC(n.node);if(s)return s(ih.create(e,t,n))}return 0}function yC(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function kC(r){let e=r.type.prop(Po);if(e)return e;let t=r.firstChild,n;if(t&&(n=t.type.prop(Fe.closedBy))){let s=r.lastChild,i=s&&n.indexOf(s.name)>-1;return o=>Rg(o,!0,1,void 0,i&&!yC(o)?s.from:void 0)}return r.parent==null?wC:null}function wC(){return 0}class ih extends vl{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new ih(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(SC(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return _g(this.context.next,this.base,this.pos)}}function SC(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function $C(r){let e=r.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let s=r.options.simulateBreak,i=r.state.doc.lineAt(t.from),o=s==null||s<=i.from?i.to:Math.min(i.to,s);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(i.text.slice(t.to-i.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function CC({closing:r,align:e=!0,units:t=1}){return n=>Rg(n,e,t,r)}function Rg(r,e,t,n,s){let i=r.textAfter,o=i.match(/^\s*/)[0].length,a=n&&i.slice(o,o+n.length)==n||s==r.pos+o,l=e?$C(r):null;return l?a?r.column(l.from):r.column(l.to):r.baseIndent+(a?0:r.unit*t)}const QC=r=>r.baseIndent;function xa({except:r,units:e=1}={}){return t=>{let n=r&&r.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}const PC=200;function TC(){return tt.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let t=r.newDoc,{head:n}=r.newSelection.main,s=t.lineAt(n);if(n>s.from+PC)return r;let i=t.sliceString(s.from,n);if(!e.some(c=>c.test(i)))return r;let{state:o}=r,a=-1,l=[];for(let{head:c}of o.selection.ranges){let u=o.doc.lineAt(c);if(u.from==a)continue;a=u.from;let h=sh(o,u.from);if(h==null)continue;let f=/^\s*/.exec(u.text)[0],p=io(o,h);f!=p&&l.push({from:u.from,to:u.from+f.length,insert:p})}return l.length?[r,{changes:l,sequential:!0}]:r})}const Bg=Qe.define(),hi=new Fe;function Zg(r){let e=r.firstChild,t=r.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?r.to:t.from}:null}function MC(r,e,t){let n=ft(r);if(n.length<t)return null;let s=n.resolveStack(t,1),i=null;for(let o=s;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(i&&a.from<e)break;let l=a.type.prop(hi);if(l&&(a.to<n.length-50||n.length==r.doc.length||!AC(a))){let c=l(a,r);c&&c.from<=t&&c.from>=e&&c.to>t&&(i=c)}}return i}function AC(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function Wa(r,e,t){for(let n of r.facet(Bg)){let s=n(r,e,t);if(s)return s}return MC(r,e,t)}function Eg(r,e){let t=e.mapPos(r.from,1),n=e.mapPos(r.to,-1);return t>=n?void 0:{from:t,to:n}}const bl=je.define({map:Eg}),To=je.define({map:Eg});function Dg(r){let e=[];for(let{head:t}of r.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(r.lineBlockAt(t));return e}const $s=At.define({create(){return Le.none},update(r,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,n)=>r=lf(r,t,n)),r=r.map(e.changes);for(let t of e.effects)if(t.is(bl)&&!_C(r,t.value.from,t.value.to)){let{preparePlaceholder:n}=e.state.facet(Ig),s=n?Le.replace({widget:new XC(n(e.state,t.value))}):cf;r=r.update({add:[s.range(t.value.from,t.value.to)]})}else t.is(To)&&(r=r.update({filter:(n,s)=>t.value.from!=n||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(r=lf(r,e.selection.main.head)),r},provide:r=>Se.decorations.from(r),toJSON(r,e){let t=[];return r.between(0,e.doc.length,(n,s)=>{t.push(n,s)}),t},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<r.length;){let n=r[t++],s=r[t++];if(typeof n!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(cf.range(n,s))}return Le.set(e,!0)}});function lf(r,e,t=e){let n=!1;return r.between(e,t,(s,i)=>{s<t&&i>e&&(n=!0)}),n?r.update({filterFrom:e,filterTo:t,filter:(s,i)=>s>=t||i<=e}):r}function qa(r,e,t){var n;let s=null;return(n=r.field($s,!1))===null||n===void 0||n.between(e,t,(i,o)=>{(!s||s.from>i)&&(s={from:i,to:o})}),s}function _C(r,e,t){let n=!1;return r.between(e,e,(s,i)=>{s==e&&i==t&&(n=!0)}),n}function Lg(r,e){return r.field($s,!1)?e:e.concat(je.appendConfig.of(Vg()))}const RC=r=>{for(let e of Dg(r)){let t=Wa(r.state,e.from,e.to);if(t)return r.dispatch({effects:Lg(r.state,[bl.of(t),Xg(r,t)])}),!0}return!1},BC=r=>{if(!r.state.field($s,!1))return!1;let e=[];for(let t of Dg(r)){let n=qa(r.state,t.from,t.to);n&&e.push(To.of(n),Xg(r,n,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function Xg(r,e,t=!0){let n=r.state.doc.lineAt(e.from).number,s=r.state.doc.lineAt(e.to).number;return Se.announce.of(`${r.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${r.state.phrase("to")} ${s}.`)}const ZC=r=>{let{state:e}=r,t=[];for(let n=0;n<e.doc.length;){let s=r.lineBlockAt(n),i=Wa(e,s.from,s.to);i&&t.push(bl.of(i)),n=(i?r.lineBlockAt(i.to):s).to+1}return t.length&&r.dispatch({effects:Lg(r.state,t)}),!!t.length},EC=r=>{let e=r.state.field($s,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,r.state.doc.length,(n,s)=>{t.push(To.of({from:n,to:s}))}),r.dispatch({effects:t}),!0},DC=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:RC},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:BC},{key:"Ctrl-Alt-[",run:ZC},{key:"Ctrl-Alt-]",run:EC}],LC={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Ig=Qe.define({combine(r){return on(r,LC)}});function Vg(r){return[$s,zC]}function zg(r,e){let{state:t}=r,n=t.facet(Ig),s=o=>{let a=r.lineBlockAt(r.posAtDOM(o.target)),l=qa(r.state,a.from,a.to);l&&r.dispatch({effects:To.of(l)}),o.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(r,s,e);let i=document.createElement("span");return i.textContent=n.placeholderText,i.setAttribute("aria-label",t.phrase("folded code")),i.title=t.phrase("unfold"),i.className="cm-foldPlaceholder",i.onclick=s,i}const cf=Le.replace({widget:new class extends an{toDOM(r){return zg(r,null)}}});class XC extends an{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return zg(e,this.value)}}const IC={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class jl extends Sn{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function VC(r={}){let e={...IC,...r},t=new jl(e,!0),n=new jl(e,!1),s=bt.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Yn)!=o.state.facet(Yn)||o.startState.field($s,!1)!=o.state.field($s,!1)||ft(o.startState)!=ft(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new kn;for(let l of o.viewportLineBlocks){let c=qa(o.state,l.from,l.to)?n:Wa(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:i}=e;return[s,X5({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(s))===null||a===void 0?void 0:a.markers)||et.empty},initialSpacer(){return new jl(e,!1)},domEventHandlers:{...i,click:(o,a,l)=>{if(i.click&&i.click(o,a,l))return!0;let c=qa(o.state,a.from,a.to);if(c)return o.dispatch({effects:To.of(c)}),!0;let u=Wa(o.state,a.from,a.to);return u?(o.dispatch({effects:bl.of(u)}),!0):!1}}}),Vg()]}const zC=Se.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Mo{constructor(e,t){this.specs=e;let n;function s(a){let l=Nn.newName();return(n||(n=Object.create(null)))["."+l]=a,l}const i=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof $r?a=>a.prop(ms)==o.data:o?a=>a==o:void 0,this.style=Mg(e.map(a=>({tag:a.tag,class:a.class||s(Object.assign({},a,{tag:null}))})),{all:i}).style,this.module=n?new Nn(n):null,this.themeType=t.themeType}static define(e,t){return new Mo(e,t||{})}}const su=Qe.define(),Ng=Qe.define({combine(r){return r.length?[r[0]]:null}});function Yl(r){let e=r.facet(su);return e.length?e:r.facet(Ng)}function Wg(r,e){let t=[WC],n;return r instanceof Mo&&(r.module&&t.push(Se.styleModule.of(r.module)),n=r.themeType),e?.fallback?t.push(Ng.of(r)):n?t.push(su.computeN([Se.darkTheme],s=>s.facet(Se.darkTheme)==(n=="dark")?[r]:[])):t.push(su.of(r)),t}class NC{constructor(e){this.markCache=Object.create(null),this.tree=ft(e.state),this.decorations=this.buildDeco(e,Yl(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ft(e.state),n=Yl(e.state),s=n!=Yl(e.startState),{viewport:i}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<i.to&&!s&&t.type==this.tree.type&&o>=i.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=i.to)}buildDeco(e,t){if(!t||!this.tree.length)return Le.none;let n=new kn;for(let{from:s,to:i}of e.visibleRanges)pC(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Le.mark({class:l})))},s,i);return n.finish()}}const WC=$n.high(bt.fromClass(NC,{decorations:r=>r.decorations})),qC=Mo.define([{tag:C.meta,color:"#404740"},{tag:C.link,textDecoration:"underline"},{tag:C.heading,textDecoration:"underline",fontWeight:"bold"},{tag:C.emphasis,fontStyle:"italic"},{tag:C.strong,fontWeight:"bold"},{tag:C.strikethrough,textDecoration:"line-through"},{tag:C.keyword,color:"#708"},{tag:[C.atom,C.bool,C.url,C.contentSeparator,C.labelName],color:"#219"},{tag:[C.literal,C.inserted],color:"#164"},{tag:[C.string,C.deleted],color:"#a11"},{tag:[C.regexp,C.escape,C.special(C.string)],color:"#e40"},{tag:C.definition(C.variableName),color:"#00f"},{tag:C.local(C.variableName),color:"#30a"},{tag:[C.typeName,C.namespace],color:"#085"},{tag:C.className,color:"#167"},{tag:[C.special(C.variableName),C.macroName],color:"#256"},{tag:C.definition(C.propertyName),color:"#00c"},{tag:C.comment,color:"#940"},{tag:C.invalid,color:"#f00"}]),jC=Se.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),qg=1e4,jg="()[]{}",Yg=Qe.define({combine(r){return on(r,{afterCursor:!0,brackets:jg,maxScanDistance:qg,renderMatch:UC})}}),YC=Le.mark({class:"cm-matchingBracket"}),FC=Le.mark({class:"cm-nonmatchingBracket"});function UC(r){let e=[],t=r.matched?YC:FC;return e.push(t.range(r.start.from,r.start.to)),r.end&&e.push(t.range(r.end.from,r.end.to)),e}function uf(r){let e=[],t=r.facet(Yg);for(let n of r.selection.ranges){if(!n.empty)continue;let s=tn(r,n.head,-1,t)||n.head>0&&tn(r,n.head-1,1,t)||t.afterCursor&&(tn(r,n.head,1,t)||n.head<r.doc.length&&tn(r,n.head+1,-1,t));s&&(e=e.concat(t.renderMatch(s,r)))}return Le.set(e,!0)}const GC=bt.fromClass(class{constructor(r){this.paused=!1,this.decorations=uf(r.state)}update(r){(r.docChanged||r.selectionSet||this.paused)&&(r.view.composing?(this.decorations=this.decorations.map(r.changes),this.paused=!0):(this.decorations=uf(r.state),this.paused=!1))}},{decorations:r=>r.decorations}),HC=[GC,jC];function KC(r={}){return[Yg.of(r),HC]}const Fg=new Fe;function iu(r,e,t){let n=r.prop(e<0?Fe.openedBy:Fe.closedBy);if(n)return n;if(r.name.length==1){let s=t.indexOf(r.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function ou(r){let e=r.type.prop(Fg);return e?e(r.node):r}function tn(r,e,t,n={}){let s=n.maxScanDistance||qg,i=n.brackets||jg,o=ft(r),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=iu(l.type,t,i);if(c&&l.from<l.to){let u=ou(l);if(u&&(t>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return JC(r,e,t,l,u,c,i)}}return eQ(r,e,t,o,a.type,s,i)}function JC(r,e,t,n,s,i,o){let a=n.parent,l={from:s.from,to:s.to},c=0,u=a?.cursor();if(u&&(t<0?u.childBefore(n.from):u.childAfter(n.to)))do if(t<0?u.to<=n.from:u.from>=n.to){if(c==0&&i.indexOf(u.type.name)>-1&&u.from<u.to){let h=ou(u);return{start:l,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(iu(u.type,t,o))c++;else if(iu(u.type,-t,o)){if(c==0){let h=ou(u);return{start:l,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}c--}}while(t<0?u.prevSibling():u.nextSibling());return{start:l,matched:!1}}function eQ(r,e,t,n,s,i,o){let a=t<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},u=r.doc.iterRange(e,t>0?r.doc.length:0),h=0;for(let f=0;!u.next().done&&f<=i;){let p=u.value;t<0&&(f+=p.length);let g=e+f*t;for(let O=t>0?0:p.length-1,x=t>0?p.length:-1;O!=x;O+=t){let b=o.indexOf(p[O]);if(!(b<0||n.resolveInner(g+O,1).type!=s))if(b%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:g+O,to:g+O+1},matched:b>>1==l>>1};h--}}t>0&&(f+=p.length)}return u.done?{start:c,matched:!1}:null}const tQ=Object.create(null),hf=[Pt.none],df=[],ff=Object.create(null),rQ=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])rQ[r]=nQ(tQ,e);function Fl(r,e){df.indexOf(r)>-1||(df.push(r),console.warn(e))}function nQ(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let u=r[c]||C[c];u?typeof u=="function"?l.length?l=l.map(u):Fl(c,`Modifier ${c} used at start of tag`):l.length?Fl(c,`Tag ${c} used as modifier`):l=Array.isArray(u)?u:[u]:Fl(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),s=n+" "+t.map(a=>a.id),i=ff[s];if(i)return i.id;let o=ff[s]=Pt.define({id:hf.length,name:n,props:[ui({[n]:t})]});return hf.push(o),o.id}dt.RTL,dt.LTR;const sQ=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=ah(r.state,t.from);return n.line?iQ(r):n.block?aQ(r):!1};function oh(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=r(e,t);return s?(n(t.update(s)),!0):!1}}const iQ=oh(uQ,0),oQ=oh(Ug,0),aQ=oh((r,e)=>Ug(r,e,cQ(e)),0);function ah(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Mi=50;function lQ(r,{open:e,close:t},n,s){let i=r.sliceDoc(n-Mi,n),o=r.sliceDoc(s,s+Mi),a=/\s*$/.exec(i)[0].length,l=/^\s*/.exec(o)[0].length,c=i.length-a;if(i.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:s+l,margin:l&&1}};let u,h;s-n<=2*Mi?u=h=r.sliceDoc(n,s):(u=r.sliceDoc(n,n+Mi),h=r.sliceDoc(s-Mi,s));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(h)[0].length,g=h.length-p-t.length;return u.slice(f,f+e.length)==e&&h.slice(g,g+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(u.charAt(f+e.length))?1:0},close:{pos:s-p-t.length,margin:/\s/.test(h.charAt(g-1))?1:0}}:null}function cQ(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),s=t.to<=n.to?n:r.doc.lineAt(t.to);s.from>n.from&&s.from==t.to&&(s=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let i=e.length-1;i>=0&&e[i].to>n.from?e[i].to=s.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:s.to})}return e}function Ug(r,e,t=e.selection.ranges){let n=t.map(i=>ah(e,i.from).block);if(!n.every(i=>i))return null;let s=t.map((i,o)=>lQ(e,n[o],i.from,i.to));if(r!=2&&!s.every(i=>i))return{changes:e.changes(t.map((i,o)=>s[o]?[]:[{from:i.from,insert:n[o].open+" "},{from:i.to,insert:" "+n[o].close}]))};if(r!=1&&s.some(i=>i)){let i=[];for(let o=0,a;o<s.length;o++)if(a=s[o]){let l=n[o],{open:c,close:u}=a;i.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:u.pos-u.margin,to:u.pos+l.close.length})}return{changes:i}}return null}function uQ(r,e,t=e.selection.ranges){let n=[],s=-1;e:for(let{from:i,to:o}of t){let a=n.length,l=1e9,c;for(let u=i;u<=o;){let h=e.doc.lineAt(u);if(c==null&&(c=ah(e,h.from).line,!c))continue e;if(h.from>s&&(i==o||o>h.from)){s=h.from;let f=/^\s*/.exec(h.text)[0].length,p=f==h.length,g=h.text.slice(f,f+c.length)==c?f:-1;f<h.text.length&&f<l&&(l=f),n.push({line:h,comment:g,token:c,indent:f,empty:p,single:!1})}u=h.to+1}if(l<1e9)for(let u=a;u<n.length;u++)n[u].indent<n[u].line.text.length&&(n[u].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(i=>i.comment<0&&(!i.empty||i.single))){let i=[];for(let{line:a,token:l,indent:c,empty:u,single:h}of n)(h||!u)&&i.push({from:a.from+c,insert:l+" "});let o=e.changes(i);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(i=>i.comment>=0)){let i=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,u=c+l.length;o.text[u-o.from]==" "&&u++,i.push({from:c,to:u})}return{changes:i}}return null}const au=Cn.define(),hQ=Cn.define(),dQ=Qe.define(),Gg=Qe.define({combine(r){return on(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,s)=>e(n,s)||t(n,s)})}}),Hg=At.define({create(){return rn.empty},update(r,e){let t=e.state.facet(Gg),n=e.annotation(au);if(n){let l=ir.fromTransaction(e,n.selection),c=n.side,u=c==0?r.undone:r.done;return l?u=ja(u,u.length,t.minDepth,l):u=eO(u,e.startState.selection),new rn(c==0?n.rest:u,c==0?u:n.rest)}let s=e.annotation(hQ);if((s=="full"||s=="before")&&(r=r.isolate()),e.annotation(yt.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let i=ir.fromTransaction(e),o=e.annotation(yt.time),a=e.annotation(yt.userEvent);return i?r=r.addChanges(i,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(s=="full"||s=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new rn(r.done.map(ir.fromJSON),r.undone.map(ir.fromJSON))}});function fQ(r={}){return[Hg,Gg.of(r),Se.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?Kg:e.inputType=="historyRedo"?lu:null;return n?(e.preventDefault(),n(t)):!1}})]}function xl(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let s=t.field(Hg,!1);if(!s)return!1;let i=s.pop(r,t,e);return i?(n(i),!0):!1}}const Kg=xl(0,!1),lu=xl(1,!1),pQ=xl(0,!0),mQ=xl(1,!0);class ir{constructor(e,t,n,s,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=s,this.selectionsAfter=i}setSelAfter(e){return new ir(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new ir(e.changes&&$t.fromJSON(e.changes),[],e.mapped&&nn.fromJSON(e.mapped),e.startSelection&&re.fromJSON(e.startSelection),e.selectionsAfter.map(re.fromJSON))}static fromTransaction(e,t){let n=Cr;for(let s of e.startState.facet(dQ)){let i=s(e);i.length&&(n=n.concat(i))}return!n.length&&e.changes.empty?null:new ir(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,Cr)}static selection(e){return new ir(void 0,Cr,void 0,void 0,e)}}function ja(r,e,t,n){let s=e+1>t+20?e-t-1:0,i=r.slice(s,e);return i.push(n),i}function gQ(r,e){let t=[],n=!1;return r.iterChangedRanges((s,i)=>t.push(s,i)),e.iterChangedRanges((s,i,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],u=t[l++];a>=c&&o<=u&&(n=!0)}}),n}function OQ(r,e){return r.ranges.length==e.ranges.length&&r.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function Jg(r,e){return r.length?e.length?r.concat(e):r:e}const Cr=[],vQ=200;function eO(r,e){if(r.length){let t=r[r.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-vQ));return n.length&&n[n.length-1].eq(e)?r:(n.push(e),ja(r,r.length-1,1e9,t.setSelAfter(n)))}else return[ir.selection([e])]}function bQ(r){let e=r[r.length-1],t=r.slice();return t[r.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Ul(r,e){if(!r.length)return r;let t=r.length,n=Cr;for(;t;){let s=xQ(r[t-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let i=r.slice(0,t);return i[t-1]=s,i}else e=s.mapped,t--,n=s.selectionsAfter}return n.length?[ir.selection(n)]:Cr}function xQ(r,e,t){let n=Jg(r.selectionsAfter.length?r.selectionsAfter.map(a=>a.map(e)):Cr,t);if(!r.changes)return ir.selection(n);let s=r.changes.map(e),i=e.mapDesc(r.changes,!0),o=r.mapped?r.mapped.composeDesc(i):i;return new ir(s,je.mapEffects(r.effects,e),o,r.startSelection.map(i),n)}const yQ=/^(input\.type|delete)($|\.)/;class rn{constructor(e,t,n=0,s=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new rn(this.done,this.undone):this}addChanges(e,t,n,s,i){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||yQ.test(n))&&(!a.selectionsAfter.length&&t-this.prevTime<s.newGroupDelay&&s.joinToEvent(i,gQ(a.changes,e.changes))||n=="input.type.compose")?o=ja(o,o.length-1,s.minDepth,new ir(e.changes.compose(a.changes),Jg(je.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,Cr)):o=ja(o,o.length,s.minDepth,e),new rn(o,Cr,t,n)}addSelection(e,t,n,s){let i=this.done.length?this.done[this.done.length-1].selectionsAfter:Cr;return i.length>0&&t-this.prevTime<s&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&OQ(i[i.length-1],e)?this:new rn(eO(this.done,e),this.undone,t,n)}addMapping(e){return new rn(Ul(this.done,e),Ul(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let s=e==0?this.done:this.undone;if(s.length==0)return null;let i=s[s.length-1],o=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:au.of({side:e,rest:bQ(s),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(i.changes){let a=s.length==1?Cr:s.slice(0,s.length-1);return i.mapped&&(a=Ul(a,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:au.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}rn.empty=new rn(Cr,Cr);const kQ=[{key:"Mod-z",run:Kg,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:lu,preventDefault:!0},{linux:"Ctrl-Shift-z",run:lu,preventDefault:!0},{key:"Mod-u",run:pQ,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:mQ,preventDefault:!0}];function di(r,e){return re.create(r.ranges.map(e),r.mainIndex)}function Dr(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Lr({state:r,dispatch:e},t){let n=di(r.selection,t);return n.eq(r.selection,!0)?!1:(e(Dr(r,n)),!0)}function yl(r,e){return re.cursor(e?r.to:r.from)}function tO(r,e){return Lr(r,t=>t.empty?r.moveByChar(t,e):yl(t,e))}function qt(r){return r.textDirectionAt(r.state.selection.main.head)==dt.LTR}const rO=r=>tO(r,!qt(r)),nO=r=>tO(r,qt(r));function sO(r,e){return Lr(r,t=>t.empty?r.moveByGroup(t,e):yl(t,e))}const wQ=r=>sO(r,!qt(r)),SQ=r=>sO(r,qt(r));function $Q(r,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function kl(r,e,t){let n=ft(r).resolveInner(e.head),s=t?Fe.closedBy:Fe.openedBy;for(let l=e.head;;){let c=t?n.childAfter(l):n.childBefore(l);if(!c)break;$Q(r,c,s)?n=c:l=t?c.to:c.from}let i=n.type.prop(s),o,a;return i&&(o=t?tn(r,n.from,1):tn(r,n.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?n.to:n.from,re.cursor(a,t?-1:1)}const CQ=r=>Lr(r,e=>kl(r.state,e,!qt(r))),QQ=r=>Lr(r,e=>kl(r.state,e,qt(r)));function iO(r,e){return Lr(r,t=>{if(!t.empty)return yl(t,e);let n=r.moveVertically(t,e);return n.head!=t.head?n:r.moveToLineBoundary(t,e)})}const oO=r=>iO(r,!1),aO=r=>iO(r,!0);function lO(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,t=0,n=0,s;if(e){for(let i of r.state.facet(Se.scrollMargins)){let o=i(r);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(n=Math.max(o?.bottom,n))}s=r.scrollDOM.clientHeight-t-n}else s=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(r.defaultLineHeight,s-5)}}function cO(r,e){let t=lO(r),{state:n}=r,s=di(n.selection,o=>o.empty?r.moveVertically(o,e,t.height):yl(o,e));if(s.eq(n.selection))return!1;let i;if(t.selfScroll){let o=r.coordsAtPos(n.selection.main.head),a=r.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(i=Se.scrollIntoView(s.main.head,{y:"start",yMargin:o.top-l}))}return r.dispatch(Dr(n,s),{effects:i}),!0}const pf=r=>cO(r,!1),cu=r=>cO(r,!0);function Un(r,e,t){let n=r.lineBlockAt(e.head),s=r.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?n.to:n.from)&&(s=r.moveToLineBoundary(e,t,!1)),!t&&s.head==n.from&&n.length){let i=/^\s*/.exec(r.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(s=re.cursor(n.from+i))}return s}const PQ=r=>Lr(r,e=>Un(r,e,!0)),TQ=r=>Lr(r,e=>Un(r,e,!1)),MQ=r=>Lr(r,e=>Un(r,e,!qt(r))),AQ=r=>Lr(r,e=>Un(r,e,qt(r))),_Q=r=>Lr(r,e=>re.cursor(r.lineBlockAt(e.head).from,1)),RQ=r=>Lr(r,e=>re.cursor(r.lineBlockAt(e.head).to,-1));function BQ(r,e,t){let n=!1,s=di(r.selection,i=>{let o=tn(r,i.head,-1)||tn(r,i.head,1)||i.head>0&&tn(r,i.head-1,1)||i.head<r.doc.length&&tn(r,i.head+1,-1);if(!o||!o.end)return i;n=!0;let a=o.start.from==i.head?o.end.to:o.end.from;return re.cursor(a)});return n?(e(Dr(r,s)),!0):!1}const ZQ=({state:r,dispatch:e})=>BQ(r,e);function Mr(r,e){let t=di(r.state.selection,n=>{let s=e(n);return re.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(r.state.selection)?!1:(r.dispatch(Dr(r.state,t)),!0)}function uO(r,e){return Mr(r,t=>r.moveByChar(t,e))}const hO=r=>uO(r,!qt(r)),dO=r=>uO(r,qt(r));function fO(r,e){return Mr(r,t=>r.moveByGroup(t,e))}const EQ=r=>fO(r,!qt(r)),DQ=r=>fO(r,qt(r)),LQ=r=>Mr(r,e=>kl(r.state,e,!qt(r))),XQ=r=>Mr(r,e=>kl(r.state,e,qt(r)));function pO(r,e){return Mr(r,t=>r.moveVertically(t,e))}const mO=r=>pO(r,!1),gO=r=>pO(r,!0);function OO(r,e){return Mr(r,t=>r.moveVertically(t,e,lO(r).height))}const mf=r=>OO(r,!1),gf=r=>OO(r,!0),IQ=r=>Mr(r,e=>Un(r,e,!0)),VQ=r=>Mr(r,e=>Un(r,e,!1)),zQ=r=>Mr(r,e=>Un(r,e,!qt(r))),NQ=r=>Mr(r,e=>Un(r,e,qt(r))),WQ=r=>Mr(r,e=>re.cursor(r.lineBlockAt(e.head).from)),qQ=r=>Mr(r,e=>re.cursor(r.lineBlockAt(e.head).to)),Of=({state:r,dispatch:e})=>(e(Dr(r,{anchor:0})),!0),vf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.doc.length})),!0),bf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.selection.main.anchor,head:0})),!0),xf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),jQ=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),YQ=({state:r,dispatch:e})=>{let t=wl(r).map(({from:n,to:s})=>re.range(n,Math.min(s+1,r.doc.length)));return e(r.update({selection:re.create(t),userEvent:"select"})),!0},FQ=({state:r,dispatch:e})=>{let t=di(r.selection,n=>{let s=ft(r),i=s.resolveStack(n.from,1);if(n.empty){let o=s.resolveStack(n.from,-1);o.node.from>=i.node.from&&o.node.to<=i.node.to&&(i=o)}for(let o=i;o;o=o.next){let{node:a}=o;if((a.from<n.from&&a.to>=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return re.range(a.to,a.from)}return n});return t.eq(r.selection)?!1:(e(Dr(r,t)),!0)};function vO(r,e){let{state:t}=r,n=t.selection,s=t.selection.ranges.slice();for(let i of t.selection.ranges){let o=t.doc.lineAt(i.head);if(e?o.to<r.state.doc.length:o.from>0)for(let a=i;;){let l=r.moveVertically(a,e);if(l.head<o.from||l.head>o.to){s.some(c=>c.head==l.head)||s.push(l);break}else{if(l.head==a.head)break;a=l}}}return s.length==n.ranges.length?!1:(r.dispatch(Dr(t,re.create(s,s.length-1))),!0)}const UQ=r=>vO(r,!1),GQ=r=>vO(r,!0),HQ=({state:r,dispatch:e})=>{let t=r.selection,n=null;return t.ranges.length>1?n=re.create([t.main]):t.main.empty||(n=re.create([re.cursor(t.main.head)])),n?(e(Dr(r,n)),!0):!1};function Ao(r,e){if(r.state.readOnly)return!1;let t="delete.selection",{state:n}=r,s=n.changeByRange(i=>{let{from:o,to:a}=i;if(o==a){let l=e(i);l<o?(t="delete.backward",l=ra(r,l,!1)):l>o&&(t="delete.forward",l=ra(r,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=ra(r,o,!1),a=ra(r,a,!0);return o==a?{range:i}:{changes:{from:o,to:a},range:re.cursor(o,o<i.head?-1:1)}});return s.changes.empty?!1:(r.dispatch(n.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?Se.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function ra(r,e,t){if(r instanceof Se)for(let n of r.state.facet(Se.atomicRanges).map(s=>s(r)))n.between(e,e,(s,i)=>{s<e&&i>e&&(e=t?i:s)});return e}const bO=(r,e,t)=>Ao(r,n=>{let s=n.from,{state:i}=r,o=i.doc.lineAt(s),a,l;if(t&&!e&&s>o.from&&s<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,s-o.from))){if(a[a.length-1]==" ")return s-1;let c=Zr(a,i.tabSize),u=c%Na(i)||Na(i);for(let h=0;h<u&&a[a.length-1-h]==" ";h++)s--;l=s}else l=Mt(o.text,s-o.from,e,e)+o.from,l==s&&o.number!=(e?i.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,s-o.from))&&(l=Mt(o.text,l-o.from,!1,!1)+o.from);return l}),uu=r=>bO(r,!1,!0),xO=r=>bO(r,!0,!1),yO=(r,e)=>Ao(r,t=>{let n=t.head,{state:s}=r,i=s.doc.lineAt(n),o=s.charCategorizer(n);for(let a=null;;){if(n==(e?i.to:i.from)){n==t.head&&i.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let l=Mt(i.text,n-i.from,e)+i.from,c=i.text.slice(Math.min(n,l)-i.from,Math.max(n,l)-i.from),u=o(c);if(a!=null&&u!=a)break;(c!=" "||n!=t.head)&&(a=u),n=l}return n}),kO=r=>yO(r,!1),KQ=r=>yO(r,!0),JQ=r=>Ao(r,e=>{let t=r.lineBlockAt(e.head).to;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),eP=r=>Ao(r,e=>{let t=r.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),tP=r=>Ao(r,e=>{let t=r.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),rP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:st.of(["",""])},range:re.cursor(n.from)}));return e(r.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},nP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>{if(!n.empty||n.from==0||n.from==r.doc.length)return{range:n};let s=n.from,i=r.doc.lineAt(s),o=s==i.from?s-1:Mt(i.text,s-i.from,!1)+i.from,a=s==i.to?s+1:Mt(i.text,s-i.from,!0)+i.from;return{changes:{from:o,to:a,insert:r.doc.slice(s,a).append(r.doc.slice(o,s))},range:re.cursor(a)}});return t.changes.empty?!1:(e(r.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function wl(r){let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.from),i=r.doc.lineAt(n.to);if(!n.empty&&n.to==i.from&&(i=r.doc.lineAt(n.to-1)),t>=s.number){let o=e[e.length-1];o.to=i.to,o.ranges.push(n)}else e.push({from:s.from,to:i.to,ranges:[n]});t=i.number+1}return e}function wO(r,e,t){if(r.readOnly)return!1;let n=[],s=[];for(let i of wl(r)){if(t?i.to==r.doc.length:i.from==0)continue;let o=r.doc.lineAt(t?i.to+1:i.from-1),a=o.length+1;if(t){n.push({from:i.to,to:o.to},{from:i.from,insert:o.text+r.lineBreak});for(let l of i.ranges)s.push(re.range(Math.min(r.doc.length,l.anchor+a),Math.min(r.doc.length,l.head+a)))}else{n.push({from:o.from,to:i.from},{from:i.to,insert:r.lineBreak+o.text});for(let l of i.ranges)s.push(re.range(l.anchor-a,l.head-a))}}return n.length?(e(r.update({changes:n,scrollIntoView:!0,selection:re.create(s,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const sP=({state:r,dispatch:e})=>wO(r,e,!1),iP=({state:r,dispatch:e})=>wO(r,e,!0);function SO(r,e,t){if(r.readOnly)return!1;let n=[];for(let i of wl(r))t?n.push({from:i.from,insert:r.doc.slice(i.from,i.to)+r.lineBreak}):n.push({from:i.to,insert:r.lineBreak+r.doc.slice(i.from,i.to)});let s=r.changes(n);return e(r.update({changes:s,selection:r.selection.map(s,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const oP=({state:r,dispatch:e})=>SO(r,e,!1),aP=({state:r,dispatch:e})=>SO(r,e,!0),lP=r=>{if(r.state.readOnly)return!1;let{state:e}=r,t=e.changes(wl(e).map(({from:s,to:i})=>(s>0?s--:i<e.doc.length&&i++,{from:s,to:i}))),n=di(e.selection,s=>{let i;if(r.lineWrapping){let o=r.lineBlockAt(s.head),a=r.coordsAtPos(s.head,s.assoc||1);a&&(i=o.bottom+r.documentTop-a.bottom+r.defaultLineHeight/2)}return r.moveVertically(s,!0,i)}).map(t);return r.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function cP(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ft(r).resolveInner(e),n=t.childBefore(e),s=t.childAfter(e),i;return n&&s&&n.to<=e&&s.from>=e&&(i=n.type.prop(Fe.closedBy))&&i.indexOf(s.name)>-1&&r.doc.lineAt(n.to).from==r.doc.lineAt(s.from).from&&!/\S/.test(r.sliceDoc(n.to,s.from))?{from:n.to,to:s.from}:null}const yf=$O(!1),uP=$O(!0);function $O(r){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:i,to:o}=s,a=e.doc.lineAt(i),l=!r&&i==o&&cP(e,i);r&&(i=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new vl(e,{simulateBreak:i,simulateDoubleBreak:!!l}),u=sh(c,i);for(u==null&&(u=Zr(/^\s*/.exec(e.doc.lineAt(i).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:i,to:o}=l:i>a.from&&i<a.from+100&&!/\S/.test(a.text.slice(0,i))&&(i=a.from);let h=["",io(e,u)];return l&&h.push(io(e,c.lineIndent(a.from,-1))),{changes:{from:i,to:o,insert:st.of(h)},range:re.cursor(i+1+h[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function lh(r,e){let t=-1;return r.changeByRange(n=>{let s=[];for(let o=n.from;o<=n.to;){let a=r.doc.lineAt(o);a.number>t&&(n.empty||n.to>a.from)&&(e(a,s,n),t=a.number),o=a.to+1}let i=r.changes(s);return{changes:s,range:re.range(i.mapPos(n.anchor,1),i.mapPos(n.head,1))}})}const hP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=Object.create(null),n=new vl(r,{overrideIndentation:i=>{let o=t[i];return o??-1}}),s=lh(r,(i,o,a)=>{let l=sh(n,i.from);if(l==null)return;/\S/.test(i.text)||(l=0);let c=/^\s*/.exec(i.text)[0],u=io(r,l);(c!=u||a.from<i.from+c.length)&&(t[i.from]=l,o.push({from:i.from,to:i.from+c.length,insert:u}))});return s.changes.empty||e(r.update(s,{userEvent:"indent"})),!0},dP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(lh(r,(t,n)=>{n.push({from:t.from,insert:r.facet(Qo)})}),{userEvent:"input.indent"})),!0),fP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(lh(r,(t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let i=Zr(s,r.tabSize),o=0,a=io(r,Math.max(0,i-Na(r)));for(;o<s.length&&o<a.length&&s.charCodeAt(o)==a.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+s.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),pP=r=>(r.setTabFocusMode(),!0),mP=[{key:"Ctrl-b",run:rO,shift:hO,preventDefault:!0},{key:"Ctrl-f",run:nO,shift:dO},{key:"Ctrl-p",run:oO,shift:mO},{key:"Ctrl-n",run:aO,shift:gO},{key:"Ctrl-a",run:_Q,shift:WQ},{key:"Ctrl-e",run:RQ,shift:qQ},{key:"Ctrl-d",run:xO},{key:"Ctrl-h",run:uu},{key:"Ctrl-k",run:JQ},{key:"Ctrl-Alt-h",run:kO},{key:"Ctrl-o",run:rP},{key:"Ctrl-t",run:nP},{key:"Ctrl-v",run:cu}],gP=[{key:"ArrowLeft",run:rO,shift:hO,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:wQ,shift:EQ,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:MQ,shift:zQ,preventDefault:!0},{key:"ArrowRight",run:nO,shift:dO,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:SQ,shift:DQ,preventDefault:!0},{mac:"Cmd-ArrowRight",run:AQ,shift:NQ,preventDefault:!0},{key:"ArrowUp",run:oO,shift:mO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Of,shift:bf},{mac:"Ctrl-ArrowUp",run:pf,shift:mf},{key:"ArrowDown",run:aO,shift:gO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:vf,shift:xf},{mac:"Ctrl-ArrowDown",run:cu,shift:gf},{key:"PageUp",run:pf,shift:mf},{key:"PageDown",run:cu,shift:gf},{key:"Home",run:TQ,shift:VQ,preventDefault:!0},{key:"Mod-Home",run:Of,shift:bf},{key:"End",run:PQ,shift:IQ,preventDefault:!0},{key:"Mod-End",run:vf,shift:xf},{key:"Enter",run:yf,shift:yf},{key:"Mod-a",run:jQ},{key:"Backspace",run:uu,shift:uu,preventDefault:!0},{key:"Delete",run:xO,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:kO,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:KQ,preventDefault:!0},{mac:"Mod-Backspace",run:eP,preventDefault:!0},{mac:"Mod-Delete",run:tP,preventDefault:!0}].concat(mP.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),OP=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:CQ,shift:LQ},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:QQ,shift:XQ},{key:"Alt-ArrowUp",run:sP},{key:"Shift-Alt-ArrowUp",run:oP},{key:"Alt-ArrowDown",run:iP},{key:"Shift-Alt-ArrowDown",run:aP},{key:"Mod-Alt-ArrowUp",run:UQ},{key:"Mod-Alt-ArrowDown",run:GQ},{key:"Escape",run:HQ},{key:"Mod-Enter",run:uP},{key:"Alt-l",mac:"Ctrl-l",run:YQ},{key:"Mod-i",run:FQ,preventDefault:!0},{key:"Mod-[",run:fP},{key:"Mod-]",run:dP},{key:"Mod-Alt-\\",run:hP},{key:"Shift-Mod-k",run:lP},{key:"Shift-Mod-\\",run:ZQ},{key:"Mod-/",run:sQ},{key:"Alt-A",run:oQ},{key:"Ctrl-m",mac:"Shift-Alt-m",run:pP}].concat(gP),kf=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class si{constructor(e,t,n=0,s=e.length,i,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,s),this.bufferStart=n,this.normalize=i?a=>i(kf(a)):kf,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return er(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Ru(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Hr(e);let s=this.normalize(t);if(s.length)for(let i=0,o=n;;i++){let a=s.charCodeAt(i),l=this.match(a,o,this.bufferPos+this.bufferStart);if(i==s.length-1){if(l)return this.value=l,this;break}o==n&&i<t.length&&t.charCodeAt(i)==a&&o++}}}match(e,t,n){let s=null;for(let i=0;i<this.matches.length;i+=2){let o=this.matches[i],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?s={from:this.matches[i+1],to:n}:(this.matches[i]++,a=!0)),a||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?s={from:t,to:n}:this.matches.push(1,t)),s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart)&&(s=null),s}}typeof Symbol<"u"&&(si.prototype[Symbol.iterator]=function(){return this});const CO={from:-1,to:-1,match:/.*/.exec("")},ch="gm"+(/x/.unicode==null?"":"u");class QO{constructor(e,t,n,s=0,i=e.length){if(this.text=e,this.to=i,this.curLine="",this.done=!1,this.value=CO,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new PO(e,t,n,s,i);this.re=new RegExp(t,ch+(n?.ignoreCase?"i":"")),this.test=n?.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=Ya(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,s=n+t[0].length;if(this.matchPos=Ya(this.text,s+(n==s?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<s||n>this.value.to)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Gl=new WeakMap;class qs{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let s=Gl.get(e);if(!s||s.from>=n||s.to<=t){let a=new qs(t,e.sliceString(t,n));return Gl.set(e,a),a}if(s.from==t&&s.to==n)return s;let{text:i,from:o}=s;return o>t&&(i=e.sliceString(t,o)+i,o=t),s.to<n&&(i+=e.sliceString(s.to,n)),Gl.set(e,new qs(o,i)),new qs(t,i.slice(t-o,n-o))}}class PO{constructor(e,t,n,s,i){this.text=e,this.to=i,this.done=!1,this.value=CO,this.matchPos=Ya(e,s),this.re=new RegExp(t,ch+(n?.ignoreCase?"i":"")),this.test=n?.test,this.flat=qs.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,s=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this.matchPos=Ya(this.text,s+(n==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=qs.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(QO.prototype[Symbol.iterator]=PO.prototype[Symbol.iterator]=function(){return this});function vP(r){try{return new RegExp(r,ch),!0}catch{return!1}}function Ya(r,e){if(e>=r.length)return e;let t=r.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}const bP=r=>{let{state:e}=r,t=String(e.doc.lineAt(r.state.selection.main.head).number),{close:n,result:s}=Z5(r,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return s.then(i=>{let o=i&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.elements.line.value);if(!o){r.dispatch({effects:n});return}let a=e.doc.lineAt(e.selection.main.head),[,l,c,u,h]=o,f=u?+u.slice(1):0,p=c?+c:a.number;if(c&&h){let x=p/100;l&&(x=x*(l=="-"?-1:1)+a.number/e.doc.lines),p=Math.round(e.doc.lines*x)}else c&&l&&(p=p*(l=="-"?-1:1)+a.number);let g=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),O=re.cursor(g.from+Math.max(0,Math.min(f,g.length)));r.dispatch({effects:[n,Se.scrollIntoView(O.from,{y:"center"})],selection:O})}),!0},xP={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},yP=Qe.define({combine(r){return on(r,xP,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function kP(r){return[QP,CP]}const wP=Le.mark({class:"cm-selectionMatch"}),SP=Le.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function wf(r,e,t,n){return(t==0||r(e.sliceDoc(t-1,t))!=mt.Word)&&(n==e.doc.length||r(e.sliceDoc(n,n+1))!=mt.Word)}function $P(r,e,t,n){return r(e.sliceDoc(t,t+1))==mt.Word&&r(e.sliceDoc(n-1,n))==mt.Word}const CP=bt.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.selectionSet||r.docChanged||r.viewportChanged)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=r.state.facet(yP),{state:t}=r,n=t.selection;if(n.ranges.length>1)return Le.none;let s=n.main,i,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return Le.none;let l=t.wordAt(s.head);if(!l)return Le.none;o=t.charCategorizer(s.head),i=t.sliceDoc(l.from,l.to)}else{let l=s.to-s.from;if(l<e.minSelectionLength||l>200)return Le.none;if(e.wholeWords){if(i=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(wf(o,t,s.from,s.to)&&$P(o,t,s.from,s.to)))return Le.none}else if(i=t.sliceDoc(s.from,s.to),!i)return Le.none}let a=[];for(let l of r.visibleRanges){let c=new si(t.doc,i,l.from,l.to);for(;!c.next().done;){let{from:u,to:h}=c.value;if((!o||wf(o,t,u,h))&&(s.empty&&u<=s.from&&h>=s.to?a.push(SP.range(u,h)):(u>=s.to||h<=s.from)&&a.push(wP.range(u,h)),a.length>e.maxMatches))return Le.none}}return Le.set(a)}},{decorations:r=>r.decorations}),QP=Se.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),PP=({state:r,dispatch:e})=>{let{selection:t}=r,n=re.create(t.ranges.map(s=>r.wordAt(s.head)||re.cursor(s.head)),t.mainIndex);return n.eq(t)?!1:(e(r.update({selection:n})),!0)};function TP(r,e){let{main:t,ranges:n}=r.selection,s=r.wordAt(t.head),i=s&&s.from==t.from&&s.to==t.to;for(let o=!1,a=new si(r.doc,e,n[n.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new si(r.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(l=>l.from==a.value.from))continue;if(i){let l=r.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}const MP=({state:r,dispatch:e})=>{let{ranges:t}=r.selection;if(t.some(i=>i.from===i.to))return PP({state:r,dispatch:e});let n=r.sliceDoc(t[0].from,t[0].to);if(r.selection.ranges.some(i=>r.sliceDoc(i.from,i.to)!=n))return!1;let s=TP(r,n);return s?(e(r.update({selection:r.selection.addRange(re.range(s.from,s.to),!1),effects:Se.scrollIntoView(s.to)})),!0):!1},fi=Qe.define({combine(r){return on(r,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new WP(e),scrollToMatch:e=>Se.scrollIntoView(e)})}});class TO{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||vP(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
22
- `:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new EP(this):new RP(this)}getCursor(e,t=0,n){let s=e.doc?e:tt.create({doc:e});return n==null&&(n=s.doc.length),this.regexp?Zs(this,s,t,n):Bs(this,s,t,n)}}class MO{constructor(e){this.spec=e}}function AP(r,e,t){return(n,s,i,o)=>{if(t&&!t(n,s,i,o))return!1;let a=n>=o&&s<=o+i.length?i.slice(n-o,s-o):e.doc.sliceString(n,s);return r(a,e,n,s)}}function Bs(r,e,t,n){let s;return r.wholeWord&&(s=_P(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(s=AP(r.test,e,s)),new si(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:i=>i.toLowerCase(),s)}function _P(r,e){return(t,n,s,i)=>((i>t||i+s.length<n)&&(i=Math.max(0,t-2),s=r.sliceString(i,Math.min(r.length,n+2))),(e(Fa(s,t-i))!=mt.Word||e(Ua(s,t-i))!=mt.Word)&&(e(Ua(s,n-i))!=mt.Word||e(Fa(s,n-i))!=mt.Word))}class RP extends MO{constructor(e){super(e)}nextMatch(e,t,n){let s=Bs(this.spec,e,n,e.doc.length).nextOverlapping();if(s.done){let i=Math.min(e.doc.length,t+this.spec.unquoted.length);s=Bs(this.spec,e,0,i).nextOverlapping()}return s.done||s.value.from==t&&s.value.to==n?null:s.value}prevMatchInRange(e,t,n){for(let s=n;;){let i=Math.max(t,s-1e4-this.spec.unquoted.length),o=Bs(this.spec,e,i,s),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(i==t)return null;s-=1e4}}prevMatch(e,t,n){let s=this.prevMatchInRange(e,0,t);return s||(s=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=t||s.to!=n)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=Bs(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=Bs(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}function BP(r,e,t){return(n,s,i)=>(!t||t(n,s,i))&&r(i[0],e,n,s)}function Zs(r,e,t,n){let s;return r.wholeWord&&(s=ZP(e.charCategorizer(e.selection.main.head))),r.test&&(s=BP(r.test,e,s)),new QO(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:s},t,n)}function Fa(r,e){return r.slice(Mt(r,e,!1),e)}function Ua(r,e){return r.slice(e,Mt(r,e))}function ZP(r){return(e,t,n)=>!n[0].length||(r(Fa(n.input,n.index))!=mt.Word||r(Ua(n.input,n.index))!=mt.Word)&&(r(Ua(n.input,n.index+n[0].length))!=mt.Word||r(Fa(n.input,n.index+n[0].length))!=mt.Word)}class EP extends MO{nextMatch(e,t,n){let s=Zs(this.spec,e,n,e.doc.length).next();return s.done&&(s=Zs(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,n){for(let s=1;;s++){let i=Math.max(t,n-s*1e4),o=Zs(this.spec,e,i,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(i==t||a.from>i+10))return a;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let s=n.length;s>0;s--){let i=+n.slice(0,s);if(i>0&&i<e.match.length)return e.match[i]+n.slice(s)}return t})}matchAll(e,t){let n=Zs(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=Zs(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}const oo=je.define(),uh=je.define(),Vn=At.define({create(r){return new Hl(hu(r).create(),null)},update(r,e){for(let t of e.effects)t.is(oo)?r=new Hl(t.value.create(),r.panel):t.is(uh)&&(r=new Hl(r.query,t.value?hh:null));return r},provide:r=>eo.from(r,e=>e.panel)});class Hl{constructor(e,t){this.query=e,this.panel=t}}const DP=Le.mark({class:"cm-searchMatch"}),LP=Le.mark({class:"cm-searchMatch cm-searchMatch-selected"}),XP=bt.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(Vn))}update(r){let e=r.state.field(Vn);(e!=r.startState.field(Vn)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return Le.none;let{view:t}=this,n=new kn;for(let s=0,i=t.visibleRanges,o=i.length;s<o;s++){let{from:a,to:l}=i[s];for(;s<o-1&&l>i[s+1].from-500;)l=i[++s].to;r.highlight(t.state,a,l,(c,u)=>{let h=t.state.selection.ranges.some(f=>f.from==c&&f.to==u);n.add(c,u,h?LP:DP)})}return n.finish()}},{decorations:r=>r.decorations});function _o(r){return e=>{let t=e.state.field(Vn,!1);return t&&t.query.spec.valid?r(e,t):RO(e)}}const Ga=_o((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let s=re.single(n.from,n.to),i=r.state.facet(fi);return r.dispatch({selection:s,effects:[dh(r,n),i.scrollToMatch(s.main,r)],userEvent:"select.search"}),_O(r),!0}),Ha=_o((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,s=e.prevMatch(t,n,n);if(!s)return!1;let i=re.single(s.from,s.to),o=r.state.facet(fi);return r.dispatch({selection:i,effects:[dh(r,s),o.scrollToMatch(i.main,r)],userEvent:"select.search"}),_O(r),!0}),IP=_o((r,{query:e})=>{let t=e.matchAll(r.state,1e3);return!t||!t.length?!1:(r.dispatch({selection:re.create(t.map(n=>re.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),VP=({state:r,dispatch:e})=>{let t=r.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:s}=t.main,i=[],o=0;for(let a=new si(r.doc,r.sliceDoc(n,s));!a.next().done;){if(i.length>1e3)return!1;a.value.from==n&&(o=i.length),i.push(re.range(a.value.from,a.value.to))}return e(r.update({selection:re.create(i,o),userEvent:"select.search.matches"})),!0},Sf=_o((r,{query:e})=>{let{state:t}=r,{from:n,to:s}=t.selection.main;if(t.readOnly)return!1;let i=e.nextMatch(t,n,n);if(!i)return!1;let o=i,a=[],l,c,u=[];o.from==n&&o.to==s&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),u.push(Se.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+".")));let h=r.state.changes(a);return o&&(l=re.single(o.from,o.to).map(h),u.push(dh(r,o)),u.push(t.facet(fi).scrollToMatch(l.main,r))),r.dispatch({changes:h,selection:l,effects:u,userEvent:"input.replace"}),!0}),zP=_o((r,{query:e})=>{if(r.state.readOnly)return!1;let t=e.matchAll(r.state,1e9).map(s=>{let{from:i,to:o}=s;return{from:i,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let n=r.state.phrase("replaced $ matches",t.length)+".";return r.dispatch({changes:t,effects:Se.announce.of(n),userEvent:"input.replace.all"}),!0});function hh(r){return r.state.facet(fi).createPanel(r)}function hu(r,e){var t,n,s,i,o;let a=r.selection.main,l=a.empty||a.to>a.from+100?"":r.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=r.facet(fi);return new TO({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e?.caseSensitive)!==null&&n!==void 0?n:c.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:c.literal,regexp:(i=e?.regexp)!==null&&i!==void 0?i:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function AO(r){let e=Hu(r,hh);return e&&e.dom.querySelector("[main-field]")}function _O(r){let e=AO(r);e&&e==r.root.activeElement&&e.select()}const RO=r=>{let e=r.state.field(Vn,!1);if(e&&e.panel){let t=AO(r);if(t&&t!=r.root.activeElement){let n=hu(r.state,e.query.spec);n.valid&&r.dispatch({effects:oo.of(n)}),t.focus(),t.select()}}else r.dispatch({effects:[uh.of(!0),e?oo.of(hu(r.state,e.query.spec)):je.appendConfig.of(jP)]});return!0},BO=r=>{let e=r.state.field(Vn,!1);if(!e||!e.panel)return!1;let t=Hu(r,hh);return t&&t.dom.contains(r.root.activeElement)&&r.focus(),r.dispatch({effects:uh.of(!1)}),!0},NP=[{key:"Mod-f",run:RO,scope:"editor search-panel"},{key:"F3",run:Ga,shift:Ha,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Ga,shift:Ha,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:BO,scope:"editor search-panel"},{key:"Mod-Shift-l",run:VP},{key:"Mod-Alt-g",run:bP},{key:"Mod-d",run:MP,preventDefault:!0}];class WP{constructor(e){this.view=e;let t=this.query=e.state.field(Vn).query.spec;this.commit=this.commit.bind(this),this.searchField=ct("input",{value:t.search,placeholder:cr(e,"Find"),"aria-label":cr(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ct("input",{value:t.replace,placeholder:cr(e,"Replace"),"aria-label":cr(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ct("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=ct("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=ct("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(s,i,o){return ct("button",{class:"cm-button",name:s,onclick:i,type:"button"},o)}this.dom=ct("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,n("next",()=>Ga(e),[cr(e,"next")]),n("prev",()=>Ha(e),[cr(e,"previous")]),n("select",()=>IP(e),[cr(e,"all")]),ct("label",null,[this.caseField,cr(e,"match case")]),ct("label",null,[this.reField,cr(e,"regexp")]),ct("label",null,[this.wordField,cr(e,"by word")]),...e.state.readOnly?[]:[ct("br"),this.replaceField,n("replace",()=>Sf(e),[cr(e,"replace")]),n("replaceAll",()=>zP(e),[cr(e,"replace all")])],ct("button",{name:"close",onclick:()=>BO(e),"aria-label":cr(e,"close"),type:"button"},["×"])])}commit(){let e=new TO({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:oo.of(e)}))}keydown(e){Y$(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ha:Ga)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Sf(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(oo)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(fi).top}}function cr(r,e){return r.state.phrase(e)}const na=30,sa=/[\s\.,:;?!]/;function dh(r,{from:e,to:t}){let n=r.state.doc.lineAt(e),s=r.state.doc.lineAt(t).to,i=Math.max(n.from,e-na),o=Math.min(s,t+na),a=r.state.sliceDoc(i,o);if(i!=n.from){for(let l=0;l<na;l++)if(!sa.test(a[l+1])&&sa.test(a[l])){a=a.slice(l);break}}if(o!=s){for(let l=a.length-1;l>a.length-na;l--)if(!sa.test(a[l-1])&&sa.test(a[l])){a=a.slice(0,l);break}}return Se.announce.of(`${r.state.phrase("current match")}. ${a} ${r.state.phrase("on line")} ${n.number}.`)}const qP=Se.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),jP=[Vn,$n.low(XP),qP];class fh{constructor(e,t,n,s){this.state=e,this.pos=t,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ft(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),s=t.text.slice(n-t.from,this.pos-t.from),i=s.search(EO(e,!1));return i<0?null:{from:n+i,to:this.pos,text:s.slice(i)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function $f(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function YP(r){let e=Object.create(null),t=Object.create(null);for(let{label:s}of r){e[s[0]]=!0;for(let i=1;i<s.length;i++)t[s[i]]=!0}let n=$f(e)+$f(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function ZO(r){let e=r.map(s=>typeof s=="string"?{label:s}:s),[t,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:YP(e);return s=>{let i=s.matchBefore(n);return i||s.explicit?{from:i?i.from:s.pos,options:e,validFor:t}:null}}function FP(r,e){return t=>{for(let n=ft(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(r.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}class Cf{constructor(e,t,n,s){this.completion=e,this.source=t,this.match=n,this.score=s}}function xs(r){return r.selection.main.from}function EO(r,e){var t;let{source:n}=r,s=e&&n[0]!="^",i=n[n.length-1]!="$";return!s&&!i?r:new RegExp(`${s?"^":""}(?:${n})${i?"$":""}`,(t=r.flags)!==null&&t!==void 0?t:r.ignoreCase?"i":"")}const ph=Cn.define();function UP(r,e,t,n){let{main:s}=r.selection,i=t-s.from,o=n-s.from;return{...r.changeByRange(a=>{if(a!=s&&t!=n&&r.sliceDoc(a.from+i,a.from+o)!=r.sliceDoc(t,n))return{range:a};let l=r.toText(e);return{changes:{from:a.from+i,to:n==s.from?a.to:a.from+o,insert:l},range:re.cursor(a.from+i+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const Qf=new WeakMap;function GP(r){if(!Array.isArray(r))return r;let e=Qf.get(r);return e||Qf.set(r,e=ZO(r)),e}const Ka=je.define(),ao=je.define();class HP{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=er(e,t),s=Hr(n);this.chars.push(n);let i=e.slice(t,t+s),o=i.toUpperCase();this.folded.push(er(o==i?i.toLowerCase():o,0)),t+=s}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:s,precise:i,byWord:o}=this;if(t.length==1){let k=er(e,0),$=Hr(k),P=$==e.length?0:-100;if(k!=t[0])if(k==n[0])P+=-200;else return null;return this.ret(P,[0,$])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let k=0,$=Math.min(e.length,200);k<$&&c<l;){let P=er(e,k);(P==t[c]||P==n[c])&&(s[c++]=k),k+=Hr(P)}if(c<l)return null}let u=0,h=0,f=!1,p=0,g=-1,O=-1,x=/[a-z]/.test(e),b=!0;for(let k=0,$=Math.min(e.length,200),P=0;k<$&&h<l;){let R=er(e,k);a<0&&(u<l&&R==t[u]&&(i[u++]=k),p<l&&(R==t[p]||R==n[p]?(p==0&&(g=k),O=k+1,p++):p=0));let V,L=R<255?R>=48&&R<=57||R>=97&&R<=122?2:R>=65&&R<=90?1:0:(V=Ru(R))!=V.toLowerCase()?1:V!=V.toUpperCase()?2:0;(!k||L==1&&x||P==0&&L!=0)&&(t[h]==R||n[h]==R&&(f=!0)?o[h++]=k:o.length&&(b=!1)),P=L,k+=Hr(R)}return h==l&&o[0]==0&&b?this.result(-100+(f?-200:0),o,e):p==l&&g==0?this.ret(-200-e.length+(O==e.length?0:-100),[0,O]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):p==l?this.ret(-900-e.length,[g,O]):h==l?this.result(-100+(f?-200:0)+-700+(b?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,n){let s=[],i=0;for(let o of t){let a=o+(this.astral?Hr(er(n,o)):1);i&&s[i-1]==o?s[i-1]=a:(s[i++]=o,s[i++]=a)}return this.ret(e-n.length,s)}}class KP{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}}const Tt=Qe.define({combine(r){return on(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:JP,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Pf(e(n),t(n)),optionClass:(e,t)=>n=>Pf(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Pf(r,e){return r?e?r+" "+e:r:e}function JP(r,e,t,n,s,i){let o=r.textDirection==dt.RTL,a=o,l=!1,c="top",u,h,f=e.left-s.left,p=s.right-e.right,g=n.right-n.left,O=n.bottom-n.top;if(a&&f<Math.min(g,p)?a=!1:!a&&p<Math.min(g,f)&&(a=!0),g<=(a?f:p))u=Math.max(s.top,Math.min(t.top,s.bottom-O))-e.top,h=Math.min(400,a?f:p);else{l=!0,h=Math.min(400,(o?e.right:s.right-e.left)-30);let k=s.bottom-e.bottom;k>=O||k>e.top?u=t.bottom-e.top:(c="bottom",u=e.bottom-t.top)}let x=(e.bottom-e.top)/i.offsetHeight,b=(e.right-e.left)/i.offsetWidth;return{style:`${c}: ${u/x}px; max-width: ${h/b}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function e3(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,s,i){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<i.length;){let u=i[c++],h=i[c++];u>l&&o.appendChild(document.createTextNode(a.slice(l,u)));let f=o.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(a.slice(u,h))),f.className="cm-completionMatchedText",l=h}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function Kl(r,e,t){if(r<=t)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let n=Math.floor((r-e)/t);return{from:r-(n+1)*t,to:r-n*t}}class t3{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:i,selected:o}=s.open,a=e.state.facet(Tt);this.optionContent=e3(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Kl(i.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let u=l.target,h;u&&u!=this.dom;u=u.parentNode)if(u.nodeName=="LI"&&(h=/-(\d+)$/.exec(u.id))&&+h[1]<c.length){this.applyCompletion(e,c[+h[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Tt).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:ao.of(null)})}),this.showOptions(i,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=s){let{options:i,selected:o,disabled:a}=n.open;(!s.open||s.open.options!=i)&&(this.range=Kl(i.length,o,e.state.facet(Tt).maxRenderedOptions),this.showOptions(i,n.id)),this.updateSel(),a!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Kl(t.options.length,t.selected,this.view.state.facet(Tt).maxRenderedOptions),this.showOptions(t.options,e.id));let n=this.updateSelectedOption(t.selected);if(n){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:i}=s;if(!i)return;let o=typeof i=="string"?document.createTextNode(i):i(s);if(!o)return;"then"in o?o.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,s)}).catch(a=>sr(this.view.state,a,"completion info")):(this.addInfoPane(o,s),n.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",n.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:i}=e;n.appendChild(s),this.infoDestroy=i||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,s=this.range.from;n;n=n.nextSibling,s++)n.nodeName!="LI"||!n.id?s--:s==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&(n.removeAttribute("aria-selected"),n.removeAttribute("aria-describedby"));return t&&n3(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),i=this.space;if(!i){let o=this.dom.ownerDocument.documentElement;i={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(i.bottom,t.bottom)-10||s.bottom<Math.max(i.top,t.top)+10?null:this.view.state.facet(Tt).positionInfo(this.view,t,s,n,i,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,n){const s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",o=>{o.target==s&&o.preventDefault()});let i=null;for(let o=n.from;o<n.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let f=typeof c=="string"?c:c.name;if(f!=i&&(o>n.from||n.from==0))if(i=f,typeof c!="string"&&c.header)s.appendChild(c.header(c));else{let p=s.appendChild(document.createElement("completion-section"));p.textContent=f}}const u=s.appendChild(document.createElement("li"));u.id=t+"-"+o,u.setAttribute("role","option");let h=this.optionClass(a);h&&(u.className=h);for(let f of this.optionContent){let p=f(a,this.view.state,this.view,l);p&&u.appendChild(p)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function r3(r,e){return t=>new t3(t,r,e)}function n3(r,e){let t=r.getBoundingClientRect(),n=e.getBoundingClientRect(),s=t.height/r.offsetHeight;n.top<t.top?r.scrollTop-=(t.top-n.top)/s:n.bottom>t.bottom&&(r.scrollTop+=(n.bottom-t.bottom)/s)}function Tf(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function s3(r,e){let t=[],n=null,s=null,i=u=>{t.push(u);let{section:h}=u.completion;if(h){n||(n=[]);let f=typeof h=="string"?h:h.name;n.some(p=>p.name==f)||n.push(typeof h=="string"?{name:f}:h)}},o=e.facet(Tt);for(let u of r)if(u.hasResult()){let h=u.result.getMatch;if(u.result.filter===!1)for(let f of u.result.options)i(new Cf(f,u.source,h?h(f):[],1e9-t.length));else{let f=e.sliceDoc(u.from,u.to),p,g=o.filterStrict?new KP(f):new HP(f);for(let O of u.result.options)if(p=g.match(O.label)){let x=O.displayLabel?h?h(O,p.matched):[]:p.matched,b=p.score+(O.boost||0);if(i(new Cf(O,u.source,x,b)),typeof O.section=="object"&&O.section.rank==="dynamic"){let{name:k}=O.section;s||(s=Object.create(null)),s[k]=Math.max(b,s[k]||-1e9)}}}}if(n){let u=Object.create(null),h=0,f=(p,g)=>(p.rank==="dynamic"&&g.rank==="dynamic"?s[g.name]-s[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof g.rank=="number"?g.rank:1e9)||(p.name<g.name?-1:1);for(let p of n.sort(f))h-=1e5,u[p.name]=h;for(let p of t){let{section:g}=p.completion;g&&(p.score+=u[typeof g=="string"?g:g.name])}}let a=[],l=null,c=o.compareCompletions;for(let u of t.sort((h,f)=>f.score-h.score||c(h.completion,f.completion))){let h=u.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(u):Tf(u.completion)>Tf(l)&&(a[a.length-1]=u),l=u.completion}return a}class Xs{constructor(e,t,n,s,i,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=s,this.selected=i,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Xs(this.options,Mf(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,s,i,o){if(s&&!o&&e.some(c=>c.isPending))return s.setDisabled();let a=s3(e,t);if(!a.length)return s&&e.some(c=>c.isPending)?s.setDisabled():null;let l=t.facet(Tt).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let c=s.options[s.selected].completion;for(let u=0;u<a.length;u++)if(a[u].completion==c){l=u;break}}return new Xs(a,Mf(n,l),{pos:e.reduce((c,u)=>u.hasResult()?Math.min(c,u.from):c,1e8),create:u3,above:i.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new Xs(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Xs(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class Ja{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new Ja(l3,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Tt),i=(n.override||t.languageDataAt("autocomplete",xs(t)).map(GP)).map(l=>(this.active.find(u=>u.source==l)||new Qr(l,this.active.some(u=>u.state!=0)?1:0)).update(e,n));i.length==this.active.length&&i.every((l,c)=>l==this.active[c])&&(i=this.active);let o=this.open,a=e.effects.some(l=>l.is(mh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||i.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!i3(i,this.active)||a?o=Xs.build(i,t,this.id,o,n,a):o&&o.disabled&&!i.some(l=>l.isPending)&&(o=null),!o&&i.every(l=>!l.isPending)&&i.some(l=>l.hasResult())&&(i=i.map(l=>l.hasResult()?new Qr(l.source,0):l));for(let l of e.effects)l.is(LO)&&(o=o&&o.setSelected(l.value,this.id));return i==this.active&&o==this.open?this:new Ja(i,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?o3:a3}}function i3(r,e){if(r==e)return!0;for(let t=0,n=0;;){for(;t<r.length&&!r[t].hasResult();)t++;for(;n<e.length&&!e[n].hasResult();)n++;let s=t==r.length,i=n==e.length;if(s||i)return s==i;if(r[t++].result!=e[n++].result)return!1}}const o3={"aria-autocomplete":"list"},a3={};function Mf(r,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(t["aria-activedescendant"]=r+"-"+e),t}const l3=[];function DO(r,e){if(r.isUserEvent("input.complete")){let n=r.annotation(ph);if(n&&e.activateOnCompletion(n))return 12}let t=r.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class Qr{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let n=DO(e,t),s=this;(n&8||n&16&&this.touches(e))&&(s=new Qr(s.source,0)),n&4&&s.state==0&&(s=new Qr(this.source,1)),s=s.updateFor(e,n);for(let i of e.effects)if(i.is(Ka))s=new Qr(s.source,1,i.value);else if(i.is(ao))s=new Qr(s.source,0);else if(i.is(mh))for(let o of i.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(xs(e.state))}}class js extends Qr{constructor(e,t,n,s,i,o){super(e,3,t),this.limit=n,this.result=s,this.from=i,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let i=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=xs(e.state);if(a>o||!s||t&2&&(xs(e.startState)==this.from||a<this.limit))return new Qr(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return c3(s.validFor,e.state,i,o)?new js(this.source,this.explicit,l,s,i,o):s.update&&(s=s.update(s,i,o,new fh(e.state,a,!1)))?new js(this.source,this.explicit,l,s,s.from,(n=s.to)!==null&&n!==void 0?n:xs(e.state)):new Qr(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new js(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new Qr(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function c3(r,e,t,n){if(!r)return!1;let s=e.sliceDoc(t,n);return typeof r=="function"?r(s,t,n,e):EO(r,!0).test(s)}const mh=je.define({map(r,e){return r.map(t=>t.map(e))}}),LO=je.define(),tr=At.define({create(){return Ja.start()},update(r,e){return r.update(e)},provide:r=>[Gu.from(r,e=>e.tooltip),Se.contentAttributes.from(r,e=>e.attrs)]});function gh(r,e){const t=e.completion.apply||e.completion.label;let n=r.state.field(tr).active.find(s=>s.source==e.source);return n instanceof js?(typeof t=="string"?r.dispatch({...UP(r.state,t,n.from,n.to),annotations:ph.of(e.completion)}):t(r,e.completion,n.from,n.to),!0):!1}const u3=r3(tr,gh);function ia(r,e="option"){return t=>{let n=t.state.field(tr,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(Tt).interactionDelay)return!1;let s=1,i;e=="page"&&(i=Og(t,n.open.tooltip))&&(s=Math.max(2,Math.floor(i.dom.offsetHeight/i.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,a=n.open.selected>-1?n.open.selected+s*(r?1:-1):r?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:LO.of(a)}),!0}}const h3=r=>{let e=r.state.field(tr,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(Tt).interactionDelay?!1:gh(r,e.open.options[e.open.selected])},Jl=r=>r.state.field(tr,!1)?(r.dispatch({effects:Ka.of(!0)}),!0):!1,d3=r=>{let e=r.state.field(tr,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(r.dispatch({effects:ao.of(null)}),!0)};class f3{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const p3=50,m3=1e3,g3=bt.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(tr).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(tr),t=r.state.facet(Tt);if(!r.selectionSet&&!r.docChanged&&r.startState.field(tr)==e)return;let n=r.transactions.some(i=>{let o=DO(i,t);return o&8||(i.selection||i.docChanged)&&!(o&3)});for(let i=0;i<this.running.length;i++){let o=this.running[i];if(n||o.context.abortOnDocChange&&r.docChanged||o.updates.length+r.transactions.length>p3&&Date.now()-o.time>m3){for(let a of o.context.abortListeners)try{a()}catch(l){sr(this.view.state,l)}o.context.abortListeners=null,this.running.splice(i--,1)}else o.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(i=>i.effects.some(o=>o.is(Ka)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(i=>i.isPending&&!this.running.some(o=>o.active.source==i.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let i of r.transactions)i.isUserEvent("input.type")?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(tr);for(let t of e.active)t.isPending&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Tt).updateSyncTime))}startQuery(r){let{state:e}=this.view,t=xs(e),n=new fh(e,t,r.explicit,this.view),s=new f3(r,n);this.running.push(s),Promise.resolve(r.source(n)).then(i=>{s.context.aborted||(s.done=i||null,this.scheduleAccept())},i=>{this.view.dispatch({effects:ao.of(null)}),sr(this.view.state,i)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Tt).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Tt),n=this.view.state.field(tr);for(let s=0;s<this.running.length;s++){let i=this.running[s];if(i.done===void 0)continue;if(this.running.splice(s--,1),i.done){let a=xs(i.updates.length?i.updates[0].startState:this.view.state),l=Math.min(a,i.done.from+(i.active.explicit?0:1)),c=new js(i.active.source,i.active.explicit,l,i.done,i.done.from,(r=i.done.to)!==null&&r!==void 0?r:a);for(let u of i.updates)c=c.update(u,t);if(c.hasResult()){e.push(c);continue}}let o=n.active.find(a=>a.source==i.active.source);if(o&&o.isPending)if(i.done==null){let a=new Qr(i.active.source,0);for(let l of i.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:mh.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(tr,!1);if(e&&e.tooltip&&this.view.state.facet(Tt).closeOnBlur){let t=e.open&&Og(this.view,e.open.tooltip);(!t||!t.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ao.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ka.of(!1)}),20),this.composing=0}}}),O3=typeof navigator=="object"&&/Win/.test(navigator.platform),v3=$n.highest(Se.domEventHandlers({keydown(r,e){let t=e.state.field(tr,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||r.key.length>1||r.ctrlKey&&!(O3&&r.altKey)||r.metaKey)return!1;let n=t.open.options[t.open.selected],s=t.active.find(o=>o.source==n.source),i=n.completion.commitCharacters||s.result.commitCharacters;return i&&i.indexOf(r.key)>-1&&gh(e,n),!1}})),XO=Se.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class b3{constructor(e,t,n,s){this.field=e,this.line=t,this.from=n,this.to=s}}class Oh{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,Dt.TrackDel),n=e.mapPos(this.to,1,Dt.TrackDel);return t==null||n==null?null:new Oh(this.field,t,n)}}class vh{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],s=[t],i=e.doc.lineAt(t),o=/^\s*/.exec(i.text)[0];for(let l of this.lines){if(n.length){let c=o,u=/^\t*/.exec(l)[0].length;for(let h=0;h<u;h++)c+=e.facet(Qo);s.push(t+c.length-u),l=c+l.slice(u)}n.push(l),t+=l.length+1}let a=this.fieldPositions.map(l=>new Oh(l.field,s[l.line]+l.from,s[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],s=[],i;for(let o of e.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=i[1]?+i[1]:null,l=i[2]||i[3]||"",c=-1,u=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<t.length;h++)(a!=null?t[h].seq==a:u&&t[h].name==u)&&(c=h);if(c<0){let h=0;for(;h<t.length&&(a==null||t[h].seq!=null&&t[h].seq<a);)h++;t.splice(h,0,{seq:a,name:u}),c=h;for(let f of s)f.field>=c&&f.field++}for(let h of s)if(h.line==n.length&&h.from>i.index){let f=i[2]?3+(i[1]||"").length:2;h.from-=f,h.to-=f}s.push(new b3(c,n.length,i.index,i.index+u.length)),o=o.slice(0,i.index)+l+o.slice(i.index+i[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let u of s)u.line==n.length&&u.from>c&&(u.from--,u.to--);return l}),n.push(o)}return new vh(n,s)}}let x3=Le.widget({widget:new class extends an{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),y3=Le.mark({class:"cm-snippetField"});class pi{constructor(e,t){this.ranges=e,this.active=t,this.deco=Le.set(e.map(n=>(n.from==n.to?x3:y3).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let s=n.map(e);if(!s)return null;t.push(s)}return new pi(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}}const Ro=je.define({map(r,e){return r&&r.map(e)}}),k3=je.define(),lo=At.define({create(){return null},update(r,e){for(let t of e.effects){if(t.is(Ro))return t.value;if(t.is(k3)&&r)return new pi(r.ranges,t.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>Se.decorations.from(r,e=>e?e.deco:Le.none)});function bh(r,e){return re.create(r.filter(t=>t.field==e).map(t=>re.range(t.from,t.to)))}function w3(r){let e=vh.parse(r);return(t,n,s,i)=>{let{text:o,ranges:a}=e.instantiate(t.state,s),{main:l}=t.state.selection,c={changes:{from:s,to:i==l.from?l.to:i,insert:st.of(o)},scrollIntoView:!0,annotations:n?[ph.of(n),yt.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=bh(a,0)),a.some(u=>u.field>0)){let u=new pi(a,0),h=c.effects=[Ro.of(u)];t.state.field(lo,!1)===void 0&&h.push(je.appendConfig.of([lo,P3,T3,XO]))}t.dispatch(t.state.update(c))}}function IO(r){return({state:e,dispatch:t})=>{let n=e.field(lo,!1);if(!n||r<0&&n.active==0)return!1;let s=n.active+r,i=r>0&&!n.ranges.some(o=>o.field==s+r);return t(e.update({selection:bh(n.ranges,s),effects:Ro.of(i?null:new pi(n.ranges,s)),scrollIntoView:!0})),!0}}const S3=({state:r,dispatch:e})=>r.field(lo,!1)?(e(r.update({effects:Ro.of(null)})),!0):!1,$3=IO(1),C3=IO(-1),Q3=[{key:"Tab",run:$3,shift:C3},{key:"Escape",run:S3}],Af=Qe.define({combine(r){return r.length?r[0]:Q3}}),P3=$n.highest(So.compute([Af],r=>r.facet(Af)));function Jt(r,e){return{...e,apply:w3(r)}}const T3=Se.domEventHandlers({mousedown(r,e){let t=e.state.field(lo,!1),n;if(!t||(n=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let s=t.ranges.find(i=>i.from<=n&&i.to>=n);return!s||s.field==t.active?!1:(e.dispatch({selection:bh(t.ranges,s.field),effects:Ro.of(t.ranges.some(i=>i.field>s.field)?new pi(t.ranges,s.field):null),scrollIntoView:!0}),!0)}}),co={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},gs=je.define({map(r,e){let t=e.mapPos(r,-1,Dt.TrackAfter);return t??void 0}}),xh=new class extends zn{};xh.startSide=1;xh.endSide=-1;const VO=At.define({create(){return et.empty},update(r,e){if(r=r.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(gs)&&(r=r.update({add:[xh.range(t.value,t.value+1)]}));return r}});function M3(){return[_3,VO]}const ec="()[]{}<>«»»«[]{}";function zO(r){for(let e=0;e<ec.length;e+=2)if(ec.charCodeAt(e)==r)return ec.charAt(e+1);return Ru(r<128?r:r+1)}function NO(r,e){return r.languageDataAt("closeBrackets",e)[0]||co}const A3=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),_3=Se.inputHandler.of((r,e,t,n)=>{if((A3?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let s=r.state.selection.main;if(n.length>2||n.length==2&&Hr(er(n,0))==1||e!=s.from||t!=s.to)return!1;let i=Z3(r.state,n);return i?(r.dispatch(i),!0):!1}),R3=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=NO(r,r.selection.main.head).brackets||co.brackets,s=null,i=r.changeByRange(o=>{if(o.empty){let a=E3(r.doc,o.head);for(let l of n)if(l==a&&Sl(r.doc,o.head)==zO(er(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:re.cursor(o.head-l.length)}}return{range:s=o}});return s||e(r.update(i,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},B3=[{key:"Backspace",run:R3}];function Z3(r,e){let t=NO(r,r.selection.main.head),n=t.brackets||co.brackets;for(let s of n){let i=zO(er(s,0));if(e==s)return i==s?X3(r,s,n.indexOf(s+s+s)>-1,t):D3(r,s,i,t.before||co.before);if(e==i&&WO(r,r.selection.main.from))return L3(r,s,i)}return null}function WO(r,e){let t=!1;return r.field(VO).between(0,r.doc.length,n=>{n==e&&(t=!0)}),t}function Sl(r,e){let t=r.sliceString(e,e+2);return t.slice(0,Hr(er(t,0)))}function E3(r,e){let t=r.sliceString(e-2,e);return Hr(er(t,0))==t.length?t:t.slice(1)}function D3(r,e,t,n){let s=null,i=r.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:gs.of(o.to+e.length),range:re.range(o.anchor+e.length,o.head+e.length)};let a=Sl(r.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:gs.of(o.head+e.length),range:re.cursor(o.head+e.length)}:{range:s=o}});return s?null:r.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function L3(r,e,t){let n=null,s=r.changeByRange(i=>i.empty&&Sl(r.doc,i.head)==t?{changes:{from:i.head,to:i.head+t.length,insert:t},range:re.cursor(i.head+t.length)}:n={range:i});return n?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function X3(r,e,t,n){let s=n.stringPrefixes||co.stringPrefixes,i=null,o=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:gs.of(a.to+e.length),range:re.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Sl(r.doc,l),u;if(c==e){if(_f(r,l))return{changes:{insert:e+e,from:l},effects:gs.of(l+e.length),range:re.cursor(l+e.length)};if(WO(r,l)){let f=t&&r.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:re.cursor(l+f.length)}}}else{if(t&&r.sliceDoc(l-2*e.length,l)==e+e&&(u=Rf(r,l-2*e.length,s))>-1&&_f(r,u))return{changes:{insert:e+e+e+e,from:l},effects:gs.of(l+e.length),range:re.cursor(l+e.length)};if(r.charCategorizer(l)(c)!=mt.Word&&Rf(r,l,s)>-1&&!I3(r,l,e,s))return{changes:{insert:e+e,from:l},effects:gs.of(l+e.length),range:re.cursor(l+e.length)}}return{range:i=a}});return i?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function _f(r,e){let t=ft(r).resolveInner(e+1);return t.parent&&t.from==e}function I3(r,e,t,n){let s=ft(r).resolveInner(e,-1),i=n.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=r.sliceDoc(s.from,Math.min(s.to,s.from+t.length+i)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let u=s.firstChild;for(;u&&u.from==s.from&&u.to-u.from>t.length+l;){if(r.sliceDoc(u.to-t.length,u.to)==t)return!1;u=u.firstChild}return!0}let c=s.to==e&&s.parent;if(!c)break;s=c}return!1}function Rf(r,e,t){let n=r.charCategorizer(e);if(n(r.sliceDoc(e-1,e))!=mt.Word)return e;for(let s of t){let i=e-s.length;if(r.sliceDoc(i,e)==s&&n(r.sliceDoc(i-1,i))!=mt.Word)return i}return-1}function V3(r={}){return[v3,tr,Tt.of(r),g3,z3,XO]}const qO=[{key:"Ctrl-Space",run:Jl},{mac:"Alt-`",run:Jl},{mac:"Alt-i",run:Jl},{key:"Escape",run:d3},{key:"ArrowDown",run:ia(!0)},{key:"ArrowUp",run:ia(!1)},{key:"PageDown",run:ia(!0,"page")},{key:"PageUp",run:ia(!1,"page")},{key:"Enter",run:h3}],z3=$n.highest(So.computeN([Tt],r=>r.facet(Tt).defaultKeymap?[qO]:[]));class Bf{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class hs{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let s=n.facet(uo).markerFilter;s&&(e=s(e,n));let i=e.slice().sort((p,g)=>p.from-g.from||p.to-g.to),o=new kn,a=[],l=0,c=n.doc.iter(),u=0,h=n.doc.length;for(let p=0;;){let g=p==i.length?null:i[p];if(!g&&!a.length)break;let O,x;if(a.length)O=l,x=a.reduce(($,P)=>Math.min($,P.to),g&&g.from>O?g.from:1e8);else{if(O=g.from,O>h)break;x=g.to,a.push(g),p++}for(;p<i.length;){let $=i[p];if($.from==O&&($.to>$.from||$.to==O))a.push($),p++,x=Math.min($.to,x);else{x=Math.min($.from,x);break}}x=Math.min(x,h);let b=!1;if(a.some($=>$.from==O&&($.to==x||x==h))&&(b=O==x,!b&&x-O<10)){let $=O-(u+c.value.length);$>0&&(c.next($),u=O);for(let P=O;;){if(P>=x){b=!0;break}if(!c.lineBreak&&u+c.value.length>P)break;P=u+c.value.length,u+=c.value.length,c.next()}}let k=tT(a);if(b)o.add(O,O,Le.widget({widget:new H3(k),diagnostics:a.slice()}));else{let $=a.reduce((P,R)=>R.markClass?P+" "+R.markClass:P,"");o.add(O,x,Le.mark({class:"cm-lintRange cm-lintRange-"+k+$,diagnostics:a.slice(),inclusiveEnd:a.some(P=>P.to>x)}))}if(l=x,l==h)break;for(let $=0;$<a.length;$++)a[$].to<=l&&a.splice($--,1)}let f=o.finish();return new hs(f,t,Fn(f))}}function Fn(r,e=null,t=0){let n=null;return r.between(t,1e9,(s,i,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new Bf(s,i,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new Bf(n.from,i,n.diagnostic)}}),n}function N3(r,e){let t=e.pos,n=e.end||t,s=r.state.facet(uo).hideOn(r,t,n);if(s!=null)return s;let i=r.startState.doc.lineAt(e.pos);return!!(r.effects.some(o=>o.is(jO))||r.changes.touchesRange(i.from,Math.max(i.to,n)))}function W3(r,e){return r.field(gr,!1)?e:e.concat(je.appendConfig.of(rT))}const jO=je.define(),yh=je.define(),YO=je.define(),gr=At.define({create(){return new hs(Le.none,null,null)},update(r,e){if(e.docChanged&&r.diagnostics.size){let t=r.diagnostics.map(e.changes),n=null,s=r.panel;if(r.selected){let i=e.changes.mapPos(r.selected.from,1);n=Fn(t,r.selected.diagnostic,i)||Fn(t,null,i)}!t.size&&s&&e.state.facet(uo).autoPanel&&(s=null),r=new hs(t,s,n)}for(let t of e.effects)if(t.is(jO)){let n=e.state.facet(uo).autoPanel?t.value.length?ho.open:null:r.panel;r=hs.init(t.value,n,e.state)}else t.is(yh)?r=new hs(r.diagnostics,t.value?ho.open:null,r.selected):t.is(YO)&&(r=new hs(r.diagnostics,r.panel,t.value));return r},provide:r=>[eo.from(r,e=>e.panel),Se.decorations.from(r,e=>e.diagnostics)]}),q3=Le.mark({class:"cm-lintRange cm-lintRange-active"});function j3(r,e,t){let{diagnostics:n}=r.state.field(gr),s,i=-1,o=-1;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:u})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return s=u.diagnostics,i=l,o=c,!1});let a=r.state.facet(uo).tooltipFilter;return s&&a&&(s=a(s,r.state)),s?{pos:i,end:o,above:r.state.doc.lineAt(i).to<o,create(){return{dom:Y3(r,s)}}}:null}function Y3(r,e){return ct("ul",{class:"cm-tooltip-lint"},e.map(t=>UO(r,t,!1)))}const F3=r=>{let e=r.state.field(gr,!1);(!e||!e.panel)&&r.dispatch({effects:W3(r.state,[yh.of(!0)])});let t=Hu(r,ho.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},Zf=r=>{let e=r.state.field(gr,!1);return!e||!e.panel?!1:(r.dispatch({effects:yh.of(!1)}),!0)},U3=r=>{let e=r.state.field(gr,!1);if(!e)return!1;let t=r.state.selection.main,n=Fn(e.diagnostics,null,t.to+1);return!n&&(n=Fn(e.diagnostics,null,0),!n||n.from==t.from&&n.to==t.to)?!1:(r.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},G3=[{key:"Mod-Shift-m",run:F3,preventDefault:!0},{key:"F8",run:U3}],uo=Qe.define({combine(r){return{sources:r.map(e=>e.source).filter(e=>e!=null),...on(r.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Ef,tooltipFilter:Ef,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,s,i)=>e(n,s,i)||t(n,s,i):e:t,autoPanel:(e,t)=>e||t})}}});function Ef(r,e){return r?e?(t,n)=>e(r(t,n),n):r:e}function FO(r){let e=[];if(r)e:for(let{name:t}of r){for(let n=0;n<t.length;n++){let s=t[n];if(/[a-zA-Z]/.test(s)&&!e.some(i=>i.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function UO(r,e,t){var n;let s=t?FO(e.actions):[];return ct("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},ct("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(r):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((i,o)=>{let a=!1,l=p=>{if(p.preventDefault(),a)return;a=!0;let g=Fn(r.state.field(gr).diagnostics,e);g&&i.apply(r,g.from,g.to)},{name:c}=i,u=s[o]?c.indexOf(s[o]):-1,h=u<0?c:[c.slice(0,u),ct("u",c.slice(u,u+1)),c.slice(u+1)],f=i.markClass?" "+i.markClass:"";return ct("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${s[o]})"`}.`},h)}),e.source&&ct("div",{class:"cm-diagnosticSource"},e.source))}class H3 extends an{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return ct("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Df{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=UO(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ho{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)Zf(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:i}=this.items[this.selectedIndex],o=FO(i.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==s.keyCode){let l=Fn(this.view.state.field(gr).diagnostics,i);l&&i.actions[a].apply(e,l.from,l.to)}}else return;s.preventDefault()}},n=s=>{for(let i=0;i<this.items.length;i++)this.items[i].dom.contains(s.target)&&this.moveSelection(i)};this.list=ct("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=ct("div",{class:"cm-panel-lint"},this.list,ct("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Zf(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(gr).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(gr),n=0,s=!1,i=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let u of c.diagnostics){if(o.has(u))continue;o.add(u);let h=-1,f;for(let p=n;p<this.items.length;p++)if(this.items[p].diagnostic==u){h=p;break}h<0?(f=new Df(this.view,u),this.items.splice(n,0,f),s=!0):(f=this.items[h],h>n&&(this.items.splice(n,h-n),s=!0)),t&&f.diagnostic==t.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),i=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Df(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),i?(this.list.setAttribute("aria-activedescendant",i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(gr),n=Fn(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:YO.of(n)})}static open(e){return new ho(e)}}function K3(r,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(r)}</svg>')`}function oa(r){return K3(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${r}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const J3=Se.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:oa("#d11")},".cm-lintRange-warning":{backgroundImage:oa("orange")},".cm-lintRange-info":{backgroundImage:oa("#999")},".cm-lintRange-hint":{backgroundImage:oa("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function eT(r){return r=="error"?4:r=="warning"?3:r=="info"?2:1}function tT(r){let e="hint",t=1;for(let n of r){let s=eT(n.severity);s>t&&(t=s,e=n.severity)}return e}const rT=[gr,Se.decorations.compute([gr],r=>{let{selected:e,panel:t}=r.field(gr);return!e||!t||e.from==e.to?Le.none:Le.set([q3.range(e.from,e.to)])}),R5(j3,{hideOn:N3}),J3],nT=[j5(),U5(),u5(),fQ(),VC(),J$(),s5(),tt.allowMultipleSelections.of(!0),TC(),Wg(qC,{fallback:!0}),KC(),M3(),V3(),k5(),$5(),g5(),kP(),So.of([...B3,...OP,...NP,...kQ,...DC,...qO,...G3])];class el{static create(e,t,n,s,i){let o=s+(s<<8)+e+(t<<4)|0;return new el(e,t,n,o,i,[],[])}constructor(e,t,n,s,i,o,a){this.type=e,this.value=t,this.from=n,this.hash=s,this.end=i,this.children=o,this.positions=a,this.hashProp=[[Fe.contextHash,s]]}addChild(e,t){e.prop(Fe.contextHash)!=this.hash&&(e=new at(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new at(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(s,i,o)=>new at(Pt.none,s,i,o,this.hashProp)})}}var ge;(function(r){r[r.Document=1]="Document",r[r.CodeBlock=2]="CodeBlock",r[r.FencedCode=3]="FencedCode",r[r.Blockquote=4]="Blockquote",r[r.HorizontalRule=5]="HorizontalRule",r[r.BulletList=6]="BulletList",r[r.OrderedList=7]="OrderedList",r[r.ListItem=8]="ListItem",r[r.ATXHeading1=9]="ATXHeading1",r[r.ATXHeading2=10]="ATXHeading2",r[r.ATXHeading3=11]="ATXHeading3",r[r.ATXHeading4=12]="ATXHeading4",r[r.ATXHeading5=13]="ATXHeading5",r[r.ATXHeading6=14]="ATXHeading6",r[r.SetextHeading1=15]="SetextHeading1",r[r.SetextHeading2=16]="SetextHeading2",r[r.HTMLBlock=17]="HTMLBlock",r[r.LinkReference=18]="LinkReference",r[r.Paragraph=19]="Paragraph",r[r.CommentBlock=20]="CommentBlock",r[r.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",r[r.Escape=22]="Escape",r[r.Entity=23]="Entity",r[r.HardBreak=24]="HardBreak",r[r.Emphasis=25]="Emphasis",r[r.StrongEmphasis=26]="StrongEmphasis",r[r.Link=27]="Link",r[r.Image=28]="Image",r[r.InlineCode=29]="InlineCode",r[r.HTMLTag=30]="HTMLTag",r[r.Comment=31]="Comment",r[r.ProcessingInstruction=32]="ProcessingInstruction",r[r.Autolink=33]="Autolink",r[r.HeaderMark=34]="HeaderMark",r[r.QuoteMark=35]="QuoteMark",r[r.ListMark=36]="ListMark",r[r.LinkMark=37]="LinkMark",r[r.EmphasisMark=38]="EmphasisMark",r[r.CodeMark=39]="CodeMark",r[r.CodeText=40]="CodeText",r[r.CodeInfo=41]="CodeInfo",r[r.LinkTitle=42]="LinkTitle",r[r.LinkLabel=43]="LinkLabel",r[r.URL=44]="URL"})(ge||(ge={}));class sT{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class iT{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return qi(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let s=t;s<e;s++)n+=this.text.charCodeAt(s)==9?4-n%4:1;return n}findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=this.text.charCodeAt(t)==9?4-n%4:1;return t}scrub(){if(!this.baseIndent)return this.text;let e="";for(let t=0;t<this.basePos;t++)e+=" ";return e+this.text.slice(this.basePos)}}function Lf(r,e,t){if(t.pos==t.text.length||r!=e.block&&t.indent>=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let n=(r.type==ge.OrderedList?Sh:wh)(t,e,!1);return n>0&&(r.type!=ge.BulletList||kh(t,e,!1)<0)&&t.text.charCodeAt(t.pos+n-1)==r.value}const GO={[ge.Blockquote](r,e,t){return t.next!=62?!1:(t.markers.push(rt(ge.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Ar(t.text.charCodeAt(t.pos+1))?2:1)),r.end=e.lineStart+t.text.length,!0)},[ge.ListItem](r,e,t){return t.indent<t.baseIndent+r.value&&t.next>-1?!1:(t.moveBaseColumn(t.baseIndent+r.value),!0)},[ge.OrderedList]:Lf,[ge.BulletList]:Lf,[ge.Document](){return!0}};function Ar(r){return r==32||r==9||r==10||r==13}function qi(r,e=0){for(;e<r.length&&Ar(r.charCodeAt(e));)e++;return e}function Xf(r,e,t){for(;e>t&&Ar(r.charCodeAt(e-1));)e--;return e}function HO(r){if(r.next!=96&&r.next!=126)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;if(e<r.pos+3)return-1;if(r.next==96){for(let t=e;t<r.text.length;t++)if(r.text.charCodeAt(t)==96)return-1}return e}function KO(r){return r.next!=62?-1:r.text.charCodeAt(r.pos+1)==32?2:1}function kh(r,e,t){if(r.next!=42&&r.next!=45&&r.next!=95)return-1;let n=1;for(let s=r.pos+1;s<r.text.length;s++){let i=r.text.charCodeAt(s);if(i==r.next)n++;else if(!Ar(i))return-1}return t&&r.next==45&&t0(r)>-1&&r.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(i0.SetextHeading)>-1||n<3?-1:1}function JO(r,e){for(let t=r.stack.length-1;t>=0;t--)if(r.stack[t].type==e)return!0;return!1}function wh(r,e,t){return(r.next==45||r.next==43||r.next==42)&&(r.pos==r.text.length-1||Ar(r.text.charCodeAt(r.pos+1)))&&(!t||JO(e,ge.BulletList)||r.skipSpace(r.pos+2)<r.text.length)?1:-1}function Sh(r,e,t){let n=r.pos,s=r.next;for(;s>=48&&s<=57;){n++;if(n==r.text.length)return-1;s=r.text.charCodeAt(n)}return n==r.pos||n>r.pos+9||s!=46&&s!=41||n<r.text.length-1&&!Ar(r.text.charCodeAt(n+1))||t&&!JO(e,ge.OrderedList)&&(r.skipSpace(n+1)==r.text.length||n>r.pos+1||r.next!=49)?-1:n+1-r.pos}function e0(r){if(r.next!=35)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==35;)e++;if(e<r.text.length&&r.text.charCodeAt(e)!=32)return-1;let t=e-r.pos;return t>6?-1:t}function t0(r){if(r.next!=45&&r.next!=61||r.indent>=r.baseIndent+4)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;let t=e;for(;e<r.text.length&&Ar(r.text.charCodeAt(e));)e++;return e==r.text.length?t:-1}const du=/^[ \t]*$/,r0=/-->/,n0=/\?>/,fu=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,r0],[/^\s*<\?/,n0],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,du],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,du]];function s0(r,e,t){if(r.next!=60)return-1;let n=r.text.slice(r.pos);for(let s=0,i=fu.length-(t?1:0);s<i;s++)if(fu[s][0].test(n))return s;return-1}function If(r,e){let t=r.countIndent(e,r.pos,r.indent),n=r.countIndent(r.skipSpace(e),e,t);return n>=t+5?t+1:n}function Bn(r,e,t){let n=r.length-1;n>=0&&r[n].to==e&&r[n].type==ge.CodeText?r[n].to=t:r.push(rt(ge.CodeText,e,t))}const aa={LinkReference:void 0,IndentedCode(r,e){let t=e.baseIndent+4;if(e.indent<t)return!1;let n=e.findColumn(t),s=r.lineStart+n,i=r.lineStart+e.text.length,o=[],a=[];for(Bn(o,s,i);r.nextLine()&&e.depth>=r.stack.length;)if(e.pos==e.text.length){Bn(a,r.lineStart-1,r.lineStart);for(let l of e.markers)a.push(l)}else{if(e.indent<t)break;{if(a.length){for(let c of a)c.type==ge.CodeText?Bn(o,c.from,c.to):o.push(c);a=[]}Bn(o,r.lineStart-1,r.lineStart);for(let c of e.markers)o.push(c);i=r.lineStart+e.text.length;let l=r.lineStart+e.findColumn(e.baseIndent+4);l<i&&Bn(o,l,i)}}return a.length&&(a=a.filter(l=>l.type!=ge.CodeText),a.length&&(e.markers=a.concat(e.markers))),r.addNode(r.buffer.writeElements(o,-s).finish(ge.CodeBlock,i-s),s),!0},FencedCode(r,e){let t=HO(e);if(t<0)return!1;let n=r.lineStart+e.pos,s=e.next,i=t-e.pos,o=e.skipSpace(t),a=Xf(e.text,e.text.length,o),l=[rt(ge.CodeMark,n,n+i)];o<a&&l.push(rt(ge.CodeInfo,r.lineStart+o,r.lineStart+a));for(let c=!0,u=!0,h=!1;r.nextLine()&&e.depth>=r.stack.length;c=!1){let f=e.pos;if(e.indent-e.baseIndent<4)for(;f<e.text.length&&e.text.charCodeAt(f)==s;)f++;if(f-e.pos>=i&&e.skipSpace(f)==e.text.length){for(let p of e.markers)l.push(p);u&&h&&Bn(l,r.lineStart-1,r.lineStart),l.push(rt(ge.CodeMark,r.lineStart+e.pos,r.lineStart+f)),r.nextLine();break}else{h=!0,c||(Bn(l,r.lineStart-1,r.lineStart),u=!1);for(let O of e.markers)l.push(O);let p=r.lineStart+e.basePos,g=r.lineStart+e.text.length;p<g&&(Bn(l,p,g),u=!1)}}return r.addNode(r.buffer.writeElements(l,-n).finish(ge.FencedCode,r.prevLineEnd()-n),n),!0},Blockquote(r,e){let t=KO(e);return t<0?!1:(r.startContext(ge.Blockquote,e.pos),r.addNode(ge.QuoteMark,r.lineStart+e.pos,r.lineStart+e.pos+1),e.moveBase(e.pos+t),null)},HorizontalRule(r,e){if(kh(e,r,!1)<0)return!1;let t=r.lineStart+e.pos;return r.nextLine(),r.addNode(ge.HorizontalRule,t),!0},BulletList(r,e){let t=wh(e,r,!1);if(t<0)return!1;r.block.type!=ge.BulletList&&r.startContext(ge.BulletList,e.basePos,e.next);let n=If(e,e.pos+1);return r.startContext(ge.ListItem,e.basePos,n-e.baseIndent),r.addNode(ge.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},OrderedList(r,e){let t=Sh(e,r,!1);if(t<0)return!1;r.block.type!=ge.OrderedList&&r.startContext(ge.OrderedList,e.basePos,e.text.charCodeAt(e.pos+t-1));let n=If(e,e.pos+t);return r.startContext(ge.ListItem,e.basePos,n-e.baseIndent),r.addNode(ge.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},ATXHeading(r,e){let t=e0(e);if(t<0)return!1;let n=e.pos,s=r.lineStart+n,i=Xf(e.text,e.text.length,n),o=i;for(;o>n&&e.text.charCodeAt(o-1)==e.next;)o--;(o==i||o==n||!Ar(e.text.charCodeAt(o-1)))&&(o=e.text.length);let a=r.buffer.write(ge.HeaderMark,0,t).writeElements(r.parser.parseInline(e.text.slice(n+t+1,o),s+t+1),-s);o<e.text.length&&a.write(ge.HeaderMark,o-n,i-n);let l=a.finish(ge.ATXHeading1-1+t,e.text.length-n);return r.nextLine(),r.addNode(l,s),!0},HTMLBlock(r,e){let t=s0(e,r,!1);if(t<0)return!1;let n=r.lineStart+e.pos,s=fu[t][1],i=[],o=s!=du;for(;!s.test(e.text)&&r.nextLine();){if(e.depth<r.stack.length){o=!1;break}for(let c of e.markers)i.push(c)}o&&r.nextLine();let a=s==r0?ge.CommentBlock:s==n0?ge.ProcessingInstructionBlock:ge.HTMLBlock,l=r.prevLineEnd();return r.addNode(r.buffer.writeElements(i,-n).finish(a,l-n),n),!0},SetextHeading:void 0};class oT{constructor(e){this.stage=0,this.elts=[],this.pos=0,this.start=e.start,this.advance(e.content)}nextLine(e,t,n){if(this.stage==-1)return!1;let s=n.content+`
23
- `+t.scrub(),i=this.advance(s);return i>-1&&i<s.length?this.complete(e,n,i):!1}finish(e,t){return(this.stage==2||this.stage==3)&&qi(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,rt(ge.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(p0(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(rt(ge.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(d0(e,qi(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=qi(e,this.pos),n=0;if(t>this.pos){let s=f0(e,t,this.start);if(s){let i=tc(e,s.to-this.start);i>0&&(this.nextStage(s),n=i)}}return n||(n=tc(e,this.pos)),n>0&&n<e.length?n:-1}else return tc(e,this.pos)}}}function tc(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!Ar(t))return-1}return e}class aT{nextLine(e,t,n){let s=t.depth<e.stack.length?-1:t0(t),i=t.next;if(s<0)return!1;let o=rt(ge.HeaderMark,e.lineStart+t.pos,e.lineStart+s);return e.nextLine(),e.addLeafElement(n,rt(i==61?ge.SetextHeading1:ge.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}}const i0={LinkReference(r,e){return e.content.charCodeAt(0)==91?new oT(e):null},SetextHeading(){return new aT}},lT=[(r,e)=>e0(e)>=0,(r,e)=>HO(e)>=0,(r,e)=>KO(e)>=0,(r,e)=>wh(e,r,!0)>=0,(r,e)=>Sh(e,r,!0)>=0,(r,e)=>kh(e,r,!0)>=0,(r,e)=>s0(e,r,!0)>=0],cT={text:"",end:0};class uT{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.line=new iT,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=s[s.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=s[0].from,this.block=el.create(ge.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new fT(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let s=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!s||e.markers[n].from<s.end);){let i=e.markers[n++];this.addNode(i.type,i.from,i.to)}if(!s)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let s=n(this,e);if(s!=!1){if(s==!0)return null;e.forward();continue e}}break}let t=new sT(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let s=n(this,t);s&&t.parsers.push(s)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
24
- `+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=m0(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=cT;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,s=this.rangeI;for(;this.ranges[s].to<t.end;){s++;let i=this.ranges[s].from,o=this.lineChunkAt(i);t.end=i+o.length,t.text=t.text.slice(0,this.ranges[s-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let s=this.stack[e.depth],i=this.parser.skipContextMarkup[s.type];if(!i)throw new Error("Unhandled block context "+ge[s.type]);let o=this.line.markers.length;if(!i(s,this,e)){this.line.markers.length>o&&(s.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
25
- `?"":t;else{let s=t.indexOf(`
26
- `);n=s<0?t:t.slice(0,s)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=el.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new at(this.parser.nodeSet.types[e],ii,ii,(n??this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(mu(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?o0(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=mu(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(ge.Paragraph,e.content.length),e.start)}elt(e,t,n,s){return typeof e=="string"?rt(this.parser.getNodeType(e),t,n,s):new c0(e,t)}get buffer(){return new l0(this.parser.nodeSet)}}function o0(r,e,t,n,s){let i=r[e].to,o=[],a=[],l=t.from+n;function c(u,h){for(;h?u>=i:u>i;){let f=r[e+1].from-i;n+=f,u+=f,e++,i=r[e].to}}for(let u=t.firstChild;u;u=u.nextSibling){c(u.from+n,!0);let h=u.from+n,f,p=s.get(u.tree);p?f=p:u.to+n>i?(f=o0(r,e,u,n,s),c(u.to+n,!1)):f=u.toTree(),o.push(f),a.push(h-l)}return c(t.to+n,!1),new at(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}class $l extends th{constructor(e,t,n,s,i,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=s,this.endLeafBlock=i,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let u of e.types)this.nodeTypes[u.name]=u.id}createParse(e,t,n){let s=new uT(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}configure(e){let t=pu(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:s}=this,i=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),u=this.endLeafBlock.slice(),h=this.wrappers;if(Ai(t.defineNodes)){s=Object.assign({},s);let f=n.types.slice(),p;for(let g of t.defineNodes){let{name:O,block:x,composite:b,style:k}=typeof g=="string"?{name:g}:g;if(f.some(R=>R.name==O))continue;b&&(s[f.length]=(R,V,L)=>b(V,L,R.value));let $=f.length,P=b?["Block","BlockContext"]:x?$>=ge.ATXHeading1&&$<=ge.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;f.push(Pt.define({id:$,name:O,props:P&&[[Fe.group,P]]})),k&&(p||(p={}),Array.isArray(k)||k instanceof mr?p[O]=k:Object.assign(p,k))}n=new Co(f),p&&(n=n.extend(ui(p)))}if(Ai(t.props)&&(n=n.extend(...t.props)),Ai(t.remove))for(let f of t.remove){let p=this.blockNames.indexOf(f),g=this.inlineNames.indexOf(f);p>-1&&(i[p]=o[p]=void 0),g>-1&&(l[g]=void 0)}if(Ai(t.parseBlock))for(let f of t.parseBlock){let p=a.indexOf(f.name);if(p>-1)i[p]=f.parse,o[p]=f.leaf;else{let g=f.before?la(a,f.before):f.after?la(a,f.after)+1:a.length-1;i.splice(g,0,f.parse),o.splice(g,0,f.leaf),a.splice(g,0,f.name)}f.endLeaf&&u.push(f.endLeaf)}if(Ai(t.parseInline))for(let f of t.parseInline){let p=c.indexOf(f.name);if(p>-1)l[p]=f.parse;else{let g=f.before?la(c,f.before):f.after?la(c,f.after)+1:c.length-1;l.splice(g,0,f.parse),c.splice(g,0,f.name)}}return t.wrap&&(h=h.concat(t.wrap)),new $l(n,i,o,a,u,s,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new $h(this,e,t);e:for(let s=t;s<n.end;){let i=n.char(s);for(let o of this.inlineParsers)if(o){let a=o(n,i,s);if(a>=0){s=a;continue e}}s++}return n.resolveMarkers(0)}}function Ai(r){return r!=null&&r.length>0}function pu(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=pu(r[0]);if(r.length==1)return e;let t=pu(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||ii).concat(a||ii),s=e.wrap,i=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:s?i?(o,a,l,c)=>s(i(o,a,l,c),a,l,c):s:i}}function la(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}let a0=[Pt.none];for(let r=1,e;e=ge[r];r++)a0[r]=Pt.define({id:r,name:e,props:r>=ge.Escape?[]:[[Fe.group,r in GO?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});const ii=[];class l0{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,s=0){return this.content.push(e,t,n,4+s*4),this}writeElements(e,t=0){for(let n of e)n.writeTo(this,t);return this}finish(e,t){return at.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:t})}}let fo=class{constructor(e,t,n,s=ii){this.type=e,this.from=t,this.to=n,this.children=s}writeTo(e,t){let n=e.content.length;e.writeElements(this.children,t),e.content.push(this.type,this.from+t,this.to+t,e.content.length+4-n)}toTree(e){return new l0(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class c0{constructor(e,t){this.tree=e,this.from=t}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return ii}writeTo(e,t){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+t,this.to+t,-1)}toTree(){return this.tree}}function rt(r,e,t,n){return new fo(r,e,t,n)}const u0={resolve:"Emphasis",mark:"EmphasisMark"},h0={resolve:"Emphasis",mark:"EmphasisMark"},ds={},tl={};class pr{constructor(e,t,n,s){this.type=e,this.from=t,this.to=n,this.side=s}}const Vf="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let po=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{po=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const rc={Escape(r,e,t){if(e!=92||t==r.end-1)return-1;let n=r.char(t+1);for(let s=0;s<Vf.length;s++)if(Vf.charCodeAt(s)==n)return r.append(rt(ge.Escape,t,t+2));return-1},Entity(r,e,t){if(e!=38)return-1;let n=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(r.slice(t+1,t+31));return n?r.append(rt(ge.Entity,t,t+1+n[0].length)):-1},InlineCode(r,e,t){if(e!=96||t&&r.char(t-1)==96)return-1;let n=t+1;for(;n<r.end&&r.char(n)==96;)n++;let s=n-t,i=0;for(;n<r.end;n++)if(r.char(n)==96){if(i++,i==s&&r.char(n+1)!=96)return r.append(rt(ge.InlineCode,t,n+1,[rt(ge.CodeMark,t,t+s),rt(ge.CodeMark,n+1-s,n+1)]))}else i=0;return-1},HTMLTag(r,e,t){if(e!=60||t==r.end-1)return-1;let n=r.slice(t+1,r.end),s=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(n);if(s)return r.append(rt(ge.Autolink,t,t+1+s[0].length,[rt(ge.LinkMark,t,t+1),rt(ge.URL,t+1,t+s[0].length),rt(ge.LinkMark,t+s[0].length,t+1+s[0].length)]));let i=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(n);if(i)return r.append(rt(ge.Comment,t,t+1+i[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return r.append(rt(ge.ProcessingInstruction,t,t+1+o[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return a?r.append(rt(ge.HTMLTag,t,t+1+a[0].length)):-1},Emphasis(r,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;r.char(n)==e;)n++;let s=r.slice(t-1,t),i=r.slice(n,n+1),o=po.test(s),a=po.test(i),l=/\s|^$/.test(s),c=/\s|^$/.test(i),u=!c&&(!a||l||o),h=!l&&(!o||c||a),f=u&&(e==42||!h||o),p=h&&(e==42||!u||a);return r.append(new pr(e==95?u0:h0,t,n,(f?1:0)|(p?2:0)))},HardBreak(r,e,t){if(e==92&&r.char(t+1)==10)return r.append(rt(ge.HardBreak,t,t+2));if(e==32){let n=t+1;for(;r.char(n)==32;)n++;if(r.char(n)==10&&n>=t+2)return r.append(rt(ge.HardBreak,t,n+1))}return-1},Link(r,e,t){return e==91?r.append(new pr(ds,t,t+1,1)):-1},Image(r,e,t){return e==33&&r.char(t+1)==91?r.append(new pr(tl,t,t+2,1)):-1},LinkEnd(r,e,t){if(e!=93)return-1;for(let n=r.parts.length-1;n>=0;n--){let s=r.parts[n];if(s instanceof pr&&(s.type==ds||s.type==tl)){if(!s.side||r.skipSpace(s.to)==t&&!/[(\[]/.test(r.slice(t+1,t+2)))return r.parts[n]=null,-1;let i=r.takeContent(n),o=r.parts[n]=hT(r,i,s.type==ds?ge.Link:ge.Image,s.from,t+1);if(s.type==ds)for(let a=0;a<n;a++){let l=r.parts[a];l instanceof pr&&l.type==ds&&(l.side=0)}return o.to}}return-1}};function hT(r,e,t,n,s){let{text:i}=r,o=r.char(s),a=s;if(e.unshift(rt(ge.LinkMark,n,n+(t==ge.Image?2:1))),e.push(rt(ge.LinkMark,s-1,s)),o==40){let l=r.skipSpace(s+1),c=d0(i,l-r.offset,r.offset),u;c&&(l=r.skipSpace(c.to),l!=c.to&&(u=f0(i,l-r.offset,r.offset),u&&(l=r.skipSpace(u.to)))),r.char(l)==41&&(e.push(rt(ge.LinkMark,s,s+1)),a=l+1,c&&e.push(c),u&&e.push(u),e.push(rt(ge.LinkMark,l,a)))}else if(o==91){let l=p0(i,s-r.offset,r.offset,!1);l&&(e.push(l),a=l.to)}return rt(t,n,a,e)}function d0(r,e,t){if(r.charCodeAt(e)==60){for(let s=e+1;s<r.length;s++){let i=r.charCodeAt(s);if(i==62)return rt(ge.URL,e+t,s+1+t);if(i==60||i==10)return!1}return null}else{let s=0,i=e;for(let o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(Ar(a))break;if(o)o=!1;else if(a==40)s++;else if(a==41){if(!s)break;s--}else a==92&&(o=!0)}return i>e?rt(ge.URL,e+t,i+t):i==r.length?null:!1}}function f0(r,e,t){let n=r.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let s=n==40?41:n;for(let i=e+1,o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(o)o=!1;else{if(a==s)return rt(ge.LinkTitle,e+t,i+1+t);a==92&&(o=!0)}}return null}function p0(r,e,t,n){for(let s=!1,i=e+1,o=Math.min(r.length,i+999);i<o;i++){let a=r.charCodeAt(i);if(s)s=!1;else{if(a==93)return n?!1:rt(ge.LinkLabel,e+t,i+1+t);if(n&&!Ar(a)&&(n=!1),a==91)return!1;a==92&&(s=!0)}}return null}class $h{constructor(e,t,n){this.parser=e,this.text=t,this.offset=n,this.parts=[]}char(e){return e>=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,s,i){return this.append(new pr(e,t,n,(s?1:0)|(i?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof pr&&(t.type==ds||t.type==tl))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n<this.parts.length;n++){let s=this.parts[n];if(!(s instanceof pr&&s.type.resolve&&s.side&2))continue;let i=s.type==u0||s.type==h0,o=s.to-s.from,a,l=n-1;for(;l>=e;l--){let O=this.parts[l];if(O instanceof pr&&O.side&1&&O.type==s.type&&!(i&&(s.side&1||O.side&2)&&(O.to-O.from+o)%3==0&&((O.to-O.from)%3||o%3))){a=O;break}}if(!a)continue;let c=s.type.resolve,u=[],h=a.from,f=s.to;if(i){let O=Math.min(2,a.to-a.from,o);h=a.to-O,f=s.from+O,c=O==1?"Emphasis":"StrongEmphasis"}a.type.mark&&u.push(this.elt(a.type.mark,h,a.to));for(let O=l+1;O<n;O++)this.parts[O]instanceof fo&&u.push(this.parts[O]),this.parts[O]=null;s.type.mark&&u.push(this.elt(s.type.mark,s.from,f));let p=this.elt(c,h,f,u);this.parts[l]=i&&a.from!=h?new pr(a.type,a.from,h,a.side):null,(this.parts[n]=i&&s.to!=f?new pr(s.type,f,s.to,s.side):null)?this.parts.splice(n,0,p):this.parts[n]=p}let t=[];for(let n=e;n<this.parts.length;n++){let s=this.parts[n];s instanceof fo&&t.push(s)}return t}findOpeningDelimiter(e){for(let t=this.parts.length-1;t>=0;t--){let n=this.parts[t];if(n instanceof pr&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof pr?t:null}skipSpace(e){return qi(this.text,e-this.offset)+this.offset}elt(e,t,n,s){return typeof e=="string"?rt(this.parser.getNodeType(e),t,n,s):new c0(e,t)}}$h.linkStart=ds;$h.imageStart=tl;function mu(r,e){if(!e.length)return r;if(!r.length)return e;let t=r.slice(),n=0;for(let s of e){for(;n<t.length&&t[n].to<s.to;)n++;if(n<t.length&&t[n].from<s.from){let i=t[n];i instanceof fo&&(t[n]=new fo(i.type,i.from,i.to,mu(i.children,[s])))}else t.splice(n++,0,s)}return t}const dT=[ge.CodeBlock,ge.ListItem,ge.OrderedList,ge.BulletList];let fT=class{constructor(e,t){this.fragments=e,this.input=t,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,e.length&&(this.fragment=e[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(e,t){for(;this.fragment&&this.fragment.to<=e;)this.nextFragment();if(!this.fragment||this.fragment.from>(e?e-1:0))return!1;if(this.fragmentEnd<0){let i=this.fragment.to;for(;i>0&&this.input.read(i-1,i)!=`
27
- `;)i--;this.fragmentEnd=i?i-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let s=e+this.fragment.offset;for(;n.to<=s;)if(!n.parent())return!1;for(;;){if(n.from>=s)return this.fragment.from<=t;if(!n.childAfter(s))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(Fe.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,s=this.fragmentEnd-(this.fragment.openEnd?1:0),i=e.absoluteLineStart,o=i,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>s){if(t.type.isAnonymous&&t.firstChild())continue;break}let u=m0(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,u);else{let h=new at(e.parser.nodeSet.types[ge.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,u)}if(t.type.is("Block")&&(dT.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-i}};function m0(r,e){let t=r;for(let n=1;n<e.length;n++){let s=e[n-1].to,i=e[n].from;s<r&&(t-=i-s)}return t}const pT=ui({"Blockquote/...":C.quote,HorizontalRule:C.contentSeparator,"ATXHeading1/... SetextHeading1/...":C.heading1,"ATXHeading2/... SetextHeading2/...":C.heading2,"ATXHeading3/...":C.heading3,"ATXHeading4/...":C.heading4,"ATXHeading5/...":C.heading5,"ATXHeading6/...":C.heading6,"Comment CommentBlock":C.comment,Escape:C.escape,Entity:C.character,"Emphasis/...":C.emphasis,"StrongEmphasis/...":C.strong,"Link/... Image/...":C.link,"OrderedList/... BulletList/...":C.list,"BlockQuote/...":C.quote,"InlineCode CodeText":C.monospace,"URL Autolink":C.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":C.processingInstruction,"CodeInfo LinkLabel":C.labelName,LinkTitle:C.string,Paragraph:C.content}),mT=new $l(new Co(a0).extend(pT),Object.keys(aa).map(r=>aa[r]),Object.keys(aa).map(r=>i0[r]),Object.keys(aa),lT,GO,Object.keys(rc).map(r=>rc[r]),Object.keys(rc),[]);function gT(r,e,t){let n=[];for(let s=r.firstChild,i=e;;s=s.nextSibling){let o=s?s.from:t;if(o>i&&n.push({from:i,to:o}),!s)break;i=s.to}return n}function OT(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Pg((s,i)=>{let o=s.type.id;if(e&&(o==ge.CodeBlock||o==ge.FencedCode)){let a="";if(o==ge.FencedCode){let c=s.node.getChild(ge.CodeInfo);c&&(a=i.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==ge.CodeText,bracketed:o==ge.FencedCode}}else if(t&&(o==ge.HTMLBlock||o==ge.HTMLTag||o==ge.CommentBlock))return{parser:t,overlay:gT(s.node,s.from,s.to)};return null})}}const vT={resolve:"Strikethrough",mark:"StrikethroughMark"},bT={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":C.strikethrough}},{name:"StrikethroughMark",style:C.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),s=r.slice(t+2,t+3),i=/\s|^$/.test(n),o=/\s|^$/.test(s),a=po.test(n),l=po.test(s);return r.addDelimiter(vT,t,t+2,!o&&(!l||i||a),!i&&(!a||o||l))},after:"Emphasis"}]};function ji(r,e,t=0,n,s=0){let i=0,o=!0,a=-1,l=-1,c=!1,u=()=>{n.push(r.elt("TableCell",s+a,s+l,r.parser.parseInline(e.slice(a,l),s+a)))};for(let h=t;h<e.length;h++){let f=e.charCodeAt(h);f==124&&!c?((!o||a>-1)&&i++,o=!1,n&&(a>-1&&u(),n.push(r.elt("TableDelimiter",h+s,h+s+1))),a=l=-1):(c||f!=32&&f!=9)&&(a<0&&(a=h),l=h+1),c=!c&&f==92}return a>-1&&(i++,n&&u()),i}function zf(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}const g0=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class Nf{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let s;if((t.next==45||t.next==58||t.next==124)&&g0.test(s=t.text.slice(t.pos))){let i=[];ji(e,n.content,0,i,n.start)==ji(e,s,t.pos)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,i),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let s=[];ji(e,t.text,t.pos,s,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,s))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}}const xT={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":C.heading}},"TableRow",{name:"TableCell",style:C.content},{name:"TableDelimiter",style:C.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return zf(e.content,0)?new Nf:null},endLeaf(r,e,t){if(t.parsers.some(s=>s instanceof Nf)||!zf(e.text,e.basePos))return!1;let n=r.peekLine();return g0.test(n)&&ji(r,e.text,e.basePos)==ji(r,n,e.basePos)},before:"SetextHeading"}]};class yT{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const kT={defineNodes:[{name:"Task",block:!0,style:C.list},{name:"TaskMarker",style:C.atom}],parseBlock:[{name:"TaskList",leaf(r,e){return/^\[[ xX]\][ \t]/.test(e.content)&&r.parentType().name=="ListItem"?new yT:null},after:"SetextHeading"}]},Wf=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,qf=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,wT=/[\w-]+\.[\w-]+($|\/)/,jf=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,Yf=/\/[a-zA-Z\d@.]+/gy;function Ff(r,e,t,n){let s=0;for(let i=e;i<t;i++)r[i]==n&&s++;return s}function ST(r,e){qf.lastIndex=e;let t=qf.exec(r);if(!t||wT.exec(t[0])[0].indexOf("_")>-1)return-1;let n=e+t[0].length;for(;;){let s=r[n-1],i;if(/[?!.,:*_~]/.test(s)||s==")"&&Ff(r,e,n,")")>Ff(r,e,n,"("))n--;else if(s==";"&&(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(r.slice(e,n))))n=e+i.index;else break}return n}function Uf(r,e){jf.lastIndex=e;let t=jf.exec(r);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}const $T={parseInline:[{name:"Autolink",parse(r,e,t){let n=t-r.offset;if(n&&/\w/.test(r.text[n-1]))return-1;Wf.lastIndex=n;let s=Wf.exec(r.text),i=-1;if(!s)return-1;if(s[1]||s[2]){if(i=ST(r.text,n+s[0].length),i>-1&&r.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(r.text.slice(n,i));i=n+o[0].length}}else s[3]?i=Uf(r.text,n):(i=Uf(r.text,n+s[0].length),i>-1&&s[0]=="xmpp:"&&(Yf.lastIndex=i,s=Yf.exec(r.text),s&&(i=s.index+s[0].length)));return i<0?-1:(r.addElement(r.elt("URL",t,i+r.offset)),i+r.offset)}}]},CT=[xT,kT,bT,$T];function O0(r,e,t){return(n,s,i)=>{if(s!=r||n.char(i+1)==r)return-1;let o=[n.elt(t,i,i+1)];for(let a=i+1;a<n.end;a++){let l=n.char(a);if(l==r)return n.addElement(n.elt(e,i,a+1,o.concat(n.elt(t,a,a+1))));if(l==92&&o.push(n.elt("Escape",a,a+++2)),Ar(l))break}return-1}}const QT={defineNodes:[{name:"Superscript",style:C.special(C.content)},{name:"SuperscriptMark",style:C.processingInstruction}],parseInline:[{name:"Superscript",parse:O0(94,"Superscript","SuperscriptMark")}]},PT={defineNodes:[{name:"Subscript",style:C.special(C.content)},{name:"SubscriptMark",style:C.processingInstruction}],parseInline:[{name:"Subscript",parse:O0(126,"Subscript","SubscriptMark")}]},TT={defineNodes:[{name:"Emoji",style:C.character}],parseInline:[{name:"Emoji",parse(r,e,t){let n;return e!=58||!(n=/^[a-zA-Z_0-9]+:/.exec(r.slice(t+1,r.end)))?-1:r.addElement(r.elt("Emoji",t,t+1+n[0].length))}}]};var Gf={};class rl{constructor(e,t,n,s,i,o,a,l,c,u=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=s,this.pos=i,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=u,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let s=e.parser.context;return new rl(e,[],t,n,n,0,[],0,s?new Hf(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,s=e&65535,{parser:i}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=i.dynamicPrecedence(s);if(a&&(this.score+=a),n==0){this.pushState(i.getGoto(this.state,s,!0),this.reducePos),s<i.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(s,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-c;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=u));let h=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-h;if(s<i.minRepeatTerm||e&131072){let p=i.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,c,p,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let p=this.stack[l-3];this.state=i.getGoto(p,s,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(s,c)}storeNode(e,t,n,s=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>n;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=s}}shift(e,t,n,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let i=e,{parser:o}=this.p;this.pos=s;let a=o.stateFlag(i,1);!a&&(s>n||t<=o.maxNode)&&(this.reducePos=s),this.pushState(i,a?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,s,4)}else this.pos=s,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,s,4)}apply(e,t,n,s){e&65536?this.reduce(e):this.shift(e,t,n,s)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(n,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new rl(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new MT(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let s=[];for(let i=0,o;i<t.length;i+=2)(o=t[i+1])!=this.state&&this.p.parser.hasAction(o,e)&&s.push(t[i],o);if(this.stack.length<120)for(let i=0;s.length<8&&i<t.length;i+=2){let o=t[i+1];s.some((a,l)=>l&1&&a==o)||s.push(t[i],o)}t=s}let n=[];for(let s=0;s<t.length&&n.length<4;s+=2){let i=t[s+1];if(i==this.state)continue;let o=this.split();o.pushState(i,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[s],this.pos),o.reducePos=this.pos,o.score-=200,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if((t&65536)==0)return!1;if(!e.validAction(this.state,t)){let n=t>>19,s=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(s,i)=>{if(!t.includes(s))return t.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-i;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,i+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Hf(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Hf{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class MT{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}}class nl{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new nl(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new nl(this.stack,this.pos,this.index)}}function Li(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,s=0;n<r.length;){let i=0;for(;;){let o=r.charCodeAt(n++),a=!1;if(o==126){i=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),i+=l,a)break;i*=46}t?t[s++]=i:t=new e(i)}return t}class ya{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Kf=new ya;class AT{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Kf,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,s=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!s)return null;let o=this.ranges[--s];i-=n.from-o.to,n=o}for(;t<0?i>n.to:i>=n.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];i+=o.from-n.to,n=o}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,s;if(t>=0&&t<this.chunk.length)n=this.pos+e,s=this.chunk.charCodeAt(t);else{let i=this.resolveOffset(e,1);if(i==null)return-1;if(n=i,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),s=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),s}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Kf,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return n}}class Ys{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;v0(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}Ys.prototype.contextual=Ys.prototype.fallback=Ys.prototype.extend=!1;class sl{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Li(e):e}token(e,t){let n=e.pos,s=0;for(;;){let i=e.next<0,o=e.resolveOffset(1,1);if(v0(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(i||s++,o==null)break;e.reset(o,e.token)}s&&(e.reset(n,e.token),e.acceptToken(this.elseToken,s))}}sl.prototype.contextual=Ys.prototype.fallback=Ys.prototype.extend=!1;class br{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function v0(r,e,t,n,s,i){let o=0,a=1<<n,{dialect:l}=t.p.parser;e:for(;(a&r[o])!=0;){let c=r[o+1];for(let p=o+3;p<c;p+=2)if((r[p+1]&a)>0){let g=r[p];if(l.allows(g)&&(e.token.value==-1||e.token.value==g||_T(g,e.token.value,s,i))){e.acceptToken(g);break}}let u=e.next,h=0,f=r[o+2];if(e.next<0&&f>h&&r[c+f*3-3]==65535){o=r[c+f*3-1];continue e}for(;h<f;){let p=h+f>>1,g=c+p+(p<<1),O=r[g],x=r[g+1]||65536;if(u<O)f=p;else if(u>=x)h=p+1;else{o=r[g+2],e.advance();continue e}}break}}function Jf(r,e,t){for(let n=e,s;(s=r[n])!=65535;n++)if(s==t)return n-e;return-1}function _T(r,e,t,n){let s=Jf(t,n,e);return s<0||Jf(t,n,r)<s}const ur=typeof process<"u"&&Gf&&/\bparse\b/.test(Gf.LOG);let nc=null;function ep(r,e,t){let n=r.cursor(lt.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}class RT{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?ep(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?ep(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],s=this.index[t];if(s==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[s],o=this.start[t]+n.positions[s];if(o>e)return this.nextStart=o,null;if(i instanceof at){if(o==e){if(o<this.safeFrom)return null;let a=o+i.length;if(a<=this.safeTo){let l=i.prop(Fe.lookAhead);if(!l||a+l<this.fragment.to)return i}}this.index[t]++,o+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+i.length}}}class BT{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new ya)}getActions(e){let t=0,n=null,{parser:s}=e.p,{tokenizers:i}=s,o=s.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<i.length;c++){if((1<<c&o)==0)continue;let u=i[c],h=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||h.start!=e.pos||h.mask!=o||h.context!=a)&&(this.updateCachedToken(h,u,e),h.mask=o,h.context=a),h.lookAhead>h.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!u.extend&&(n=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new ya,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new ya,{pos:n,p:s}=e;return t.start=n,t.end=Math.min(n+1,s.stream.end),t.value=n==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,n){let s=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(s,e),n),e.value>-1){let{parser:i}=n.p;for(let o=0;o<i.specialized.length;o++)if(i.specialized[o]==e.value){let a=i.specializers[o](this.stream.read(e.start,e.end),n);if(a>=0&&n.p.parser.dialect.allows(a>>1)){(a&1)==0?e.value=a>>1:e.extended=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,n,s){for(let i=0;i<s;i+=3)if(this.actions[i]==e)return s;return this.actions[s++]=e,this.actions[s++]=t,this.actions[s++]=n,s}addActions(e,t,n,s){let{state:i}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(i,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=gn(a,c+2);else{s==0&&a[c+1]==2&&(s=this.putAction(gn(a,c+2),t,n,s));break}a[c]==t&&(s=this.putAction(gn(a,c+1),t,n,s))}return s}}class ZT{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new AT(t,s),this.tokens=new BT(e,this.stream),this.topTerm=e.top[1];let{from:i}=s[0];this.stacks=[rl.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new RT(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],s,i;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)n.push(a);else{if(this.advanceStack(a,n,e))continue;{s||(s=[],i=[]),s.push(a);let l=this.tokens.getMainToken(a);i.push(l.value,l.end)}}break}}if(!n.length){let o=s&&DT(s);if(o)return ur&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw ur&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,i,n);if(o)return ur&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let l=o+1;l<n.length;l++){let c=n[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,a)=>a.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let s=e.pos,{parser:i}=this,o=ur?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(s);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?i.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!c||(h.prop(Fe.contextHash)||0)==u))return e.useNode(h,f),ur&&console.log(o+this.stackID(e)+` (via reuse of ${i.getName(h.type.id)})`),!0;if(!(h instanceof at)||h.children.length==0||h.positions[0]>0)break;let p=h.children[0];if(p instanceof at&&h.positions[0]==0)h=p;else break}}let a=i.stateSlot(e.state,4);if(a>0)return e.reduce(a),ur&&console.log(o+this.stackID(e)+` (via always-reduce ${i.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let u=l[c++],h=l[c++],f=l[c++],p=c==l.length||!n,g=p?e:e.split(),O=this.tokens.mainToken;if(g.apply(u,h,O?O.start:g.pos,f),ur&&console.log(o+this.stackID(g)+` (via ${(u&65536)==0?"shift":`reduce of ${i.getName(u&65535)}`} for ${i.getName(h)} @ ${s}${g==e?"":", split"})`),p)return!0;g.pos>s?t.push(g):n.push(g)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return tp(e,t),!0}}runRecovery(e,t,n){let s=null,i=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],u=ur?this.stackID(a)+" -> ":"";if(a.deadEnd&&(i||(i=!0,a.restart(),ur&&console.log(u+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let h=a.split(),f=u;for(let p=0;p<10&&h.forceReduce()&&(ur&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));p++)ur&&(f=this.stackID(h)+" -> ");for(let p of a.recoverByInsert(l))ur&&console.log(u+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),ur&&console.log(u+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),tp(a,n)):(!s||s.score<h.score)&&(s=h)}return s}stackToTree(e){return e.close(),at.build({buffer:nl.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(nc||(nc=new WeakMap)).get(e);return t||nc.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}}function tp(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}class ET{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}}const sc=r=>r;class b0{constructor(e){this.start=e.start,this.shift=e.shift||sc,this.reduce=e.reduce||sc,this.reuse=e.reuse||sc,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class oi extends th{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),s=[];for(let a=0;a<t.length;a++)s.push([]);function i(a,l,c){s[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=Fe[l]);for(let c=1;c<a.length;){let u=a[c++];if(u>=0)i(u,l,a[c++]);else{let h=a[c+-u];for(let f=-u;f>0;f--)i(a[c++],l,h);c++}}}this.nodeSet=new Co(t.map((a,l)=>Pt.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:s[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=wg;let o=Li(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(rp),this.states=Li(e.states,Uint32Array),this.data=Li(e.stateData),this.goto=Li(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Ys(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let s=new ZT(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}getGoto(e,t,n=!1){let s=this.goto;if(t>=s[0])return-1;for(let i=s[t+1];;){let o=s[i++],a=o&1,l=s[i++];if(a&&n)return l;for(let c=i+(o>>1);i<c;i++)if(s[i]==e)return l;if(a)return-1}}hasAction(e,t){let n=this.data;for(let s=0;s<2;s++)for(let i=this.stateSlot(e,s?2:1),o;;i+=3){if((o=n[i])==65535)if(n[i+1]==1)o=n[i=gn(n,i+2)];else{if(n[i+1]==2)return gn(n,i+2);break}if(o==t||o==0)return gn(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),s=n?t(n):void 0;for(let i=this.stateSlot(e,1);s==null;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=gn(this.data,i+2);else break;s=t(gn(this.data,i+1))}return s}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=gn(this.data,n+2);else break;if((this.data[n+2]&1)==0){let s=this.data[n+1];t.some((i,o)=>o&1&&i==s)||t.push(this.data[n],s)}}return t}configure(e){let t=Object.assign(Object.create(oi.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(i=>i.from==n);return s?s.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,s)=>{let i=e.specializers.find(a=>a.from==n.external);if(!i)return n;let o=Object.assign(Object.assign({},n),{external:i.to});return t.specializers[s]=rp(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let i of e.split(" ")){let o=t.indexOf(i);o>=0&&(n[o]=!0)}let s=null;for(let i=0;i<t.length;i++)if(!n[i])for(let o=this.dialects[t[i]],a;(a=this.data[o++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[a]=1;return new ET(e,n,s)}static deserialize(e){return new oi(e)}}function gn(r,e){return r[e]|r[e+1]<<16}function DT(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function rp(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}const LT=55,XT=1,IT=56,VT=2,zT=57,NT=3,np=4,WT=5,Ch=6,x0=7,y0=8,k0=9,w0=10,qT=11,jT=12,YT=13,ic=58,FT=14,UT=15,sp=59,S0=21,GT=23,$0=24,HT=25,gu=27,C0=28,KT=29,JT=32,eM=35,tM=37,rM=38,nM=0,sM=1,iM={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},oM={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},ip={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function aM(r){return r==45||r==46||r==58||r>=65&&r<=90||r==95||r>=97&&r<=122||r>=161}let op=null,ap=null,lp=0;function Ou(r,e){let t=r.pos+e;if(lp==t&&ap==r)return op;let n=r.peek(e),s="";for(;aM(n);)s+=String.fromCharCode(n),n=r.peek(++e);return ap=r,lp=t,op=s?s.toLowerCase():n==lM||n==cM?void 0:null}const Q0=60,il=62,Qh=47,lM=63,cM=33,uM=45;function cp(r,e){this.name=r,this.parent=e}const hM=[Ch,w0,x0,y0,k0],dM=new b0({start:null,shift(r,e,t,n){return hM.indexOf(e)>-1?new cp(Ou(n,1)||"",r):r},reduce(r,e){return e==S0&&r?r.parent:r},reuse(r,e,t,n){let s=e.type.id;return s==Ch||s==tM?new cp(Ou(n,1)||"",r):r},strict:!1}),fM=new br((r,e)=>{if(r.next!=Q0){r.next<0&&e.context&&r.acceptToken(ic);return}r.advance();let t=r.next==Qh;t&&r.advance();let n=Ou(r,0);if(n===void 0)return;if(!n)return r.acceptToken(t?UT:FT);let s=e.context?e.context.name:null;if(t){if(n==s)return r.acceptToken(qT);if(s&&oM[s])return r.acceptToken(ic,-2);if(e.dialectEnabled(nM))return r.acceptToken(jT);for(let i=e.context;i;i=i.parent)if(i.name==n)return;r.acceptToken(YT)}else{if(n=="script")return r.acceptToken(x0);if(n=="style")return r.acceptToken(y0);if(n=="textarea")return r.acceptToken(k0);if(iM.hasOwnProperty(n))return r.acceptToken(w0);s&&ip[s]&&ip[s][n]?r.acceptToken(ic,-1):r.acceptToken(Ch)}},{contextual:!0}),pM=new br(r=>{for(let e=0,t=0;;t++){if(r.next<0){t&&r.acceptToken(sp);break}if(r.next==uM)e++;else if(r.next==il&&e>=2){t>=3&&r.acceptToken(sp,-2);break}else e=0;r.advance()}});function mM(r){for(;r;r=r.parent)if(r.name=="svg"||r.name=="math")return!0;return!1}const gM=new br((r,e)=>{if(r.next==Qh&&r.peek(1)==il){let t=e.dialectEnabled(sM)||mM(e.context);r.acceptToken(t?WT:np,2)}else r.next==il&&r.acceptToken(np,1)});function Ph(r,e,t){let n=2+r.length;return new br(s=>{for(let i=0,o=0,a=0;;a++){if(s.next<0){a&&s.acceptToken(e);break}if(i==0&&s.next==Q0||i==1&&s.next==Qh||i>=2&&i<n&&s.next==r.charCodeAt(i-2))i++,o++;else if(i==n&&s.next==il){a>o?s.acceptToken(e,-o):s.acceptToken(t,-(o-2));break}else if((s.next==10||s.next==13)&&a){s.acceptToken(e,1);break}else i=o=0;s.advance()}})}const OM=Ph("script",LT,XT),vM=Ph("style",IT,VT),bM=Ph("textarea",zT,NT),xM=ui({"Text RawText IncompleteTag IncompleteCloseTag":C.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":C.angleBracket,TagName:C.tagName,"MismatchedCloseTag/TagName":[C.tagName,C.invalid],AttributeName:C.attributeName,"AttributeValue UnquotedAttributeValue":C.attributeValue,Is:C.definitionOperator,"EntityReference CharacterReference":C.character,Comment:C.blockComment,ProcessingInst:C.processingInstruction,DoctypeDecl:C.documentMeta}),yM=oi.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:dM,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[xM],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[OM,vM,bM,gM,fM,pM,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function P0(r,e){let t=Object.create(null);for(let n of r.getChildren($0)){let s=n.getChild(HT),i=n.getChild(gu)||n.getChild(C0);s&&(t[e.read(s.from,s.to)]=i?i.type.id==gu?e.read(i.from+1,i.to-1):e.read(i.from,i.to):"")}return t}function up(r,e){let t=r.getChild(GT);return t?e.read(t.from,t.to):" "}function oc(r,e,t){let n;for(let s of t)if(!s.attrs||s.attrs(n||(n=P0(r.node.parent.firstChild,e))))return{parser:s.parser,bracketed:!0};return null}function T0(r=[],e=[]){let t=[],n=[],s=[],i=[];for(let a of r)(a.tag=="script"?t:a.tag=="style"?n:a.tag=="textarea"?s:i).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return Pg((a,l)=>{let c=a.type.id;if(c==KT)return oc(a,l,t);if(c==JT)return oc(a,l,n);if(c==eM)return oc(a,l,s);if(c==S0&&i.length){let u=a.node,h=u.firstChild,f=h&&up(h,l),p;if(f){for(let g of i)if(g.tag==f&&(!g.attrs||g.attrs(p||(p=P0(h,l))))){let O=u.lastChild,x=O.type.id==rM?O.from:u.to;if(x>h.to)return{parser:g.parser,overlay:[{from:h.to,to:x}]}}}}if(o&&c==$0){let u=a.node,h;if(h=u.firstChild){let f=o[l.read(h.from,h.to)];if(f)for(let p of f){if(p.tagName&&p.tagName!=up(u.parent,l))continue;let g=u.lastChild;if(g.type.id==gu){let O=g.from+1,x=g.lastChild,b=g.to-(x&&x.isError?0:1);if(b>O)return{parser:p.parser,overlay:[{from:O,to:b}],bracketed:!0}}else if(g.type.id==C0)return{parser:p.parser,overlay:[{from:g.from,to:g.to}]}}}}return null})}const kM=122,hp=1,wM=123,SM=124,M0=2,$M=125,CM=3,QM=4,A0=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],PM=58,TM=40,_0=95,MM=91,ka=45,AM=46,_M=35,RM=37,BM=38,ZM=92,EM=10,DM=42;function mo(r){return r>=65&&r<=90||r>=97&&r<=122||r>=161}function Th(r){return r>=48&&r<=57}function dp(r){return Th(r)||r>=97&&r<=102||r>=65&&r<=70}const R0=(r,e,t)=>(n,s)=>{for(let i=!1,o=0,a=0;;a++){let{next:l}=n;if(mo(l)||l==ka||l==_0||i&&Th(l))!i&&(l!=ka||a>0)&&(i=!0),o===a&&l==ka&&o++,n.advance();else if(l==ZM&&n.peek(1)!=EM){if(n.advance(),dp(n.next)){do n.advance();while(dp(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();i=!0}else{i&&n.acceptToken(o==2&&s.canShift(M0)?e:l==TM?t:r);break}}},LM=new br(R0(wM,M0,SM)),XM=new br(R0($M,CM,QM)),IM=new br(r=>{if(A0.includes(r.peek(-1))){let{next:e}=r;(mo(e)||e==_0||e==_M||e==AM||e==DM||e==MM||e==PM&&mo(r.peek(1))||e==ka||e==BM)&&r.acceptToken(kM)}}),VM=new br(r=>{if(!A0.includes(r.peek(-1))){let{next:e}=r;if(e==RM&&(r.advance(),r.acceptToken(hp)),mo(e)){do r.advance();while(mo(r.next)||Th(r.next));r.acceptToken(hp)}}}),zM=ui({"AtKeyword import charset namespace keyframes media supports":C.definitionKeyword,"from to selector":C.keyword,NamespaceName:C.namespace,KeyframeName:C.labelName,KeyframeRangeName:C.operatorKeyword,TagName:C.tagName,ClassName:C.className,PseudoClassName:C.constant(C.className),IdName:C.labelName,"FeatureName PropertyName":C.propertyName,AttributeName:C.attributeName,NumberLiteral:C.number,KeywordQuery:C.keyword,UnaryQueryOp:C.operatorKeyword,"CallTag ValueName":C.atom,VariableName:C.variableName,Callee:C.operatorKeyword,Unit:C.unit,"UniversalSelector NestingSelector":C.definitionOperator,"MatchOp CompareOp":C.compareOperator,"ChildOp SiblingOp, LogicOp":C.logicOperator,BinOp:C.arithmeticOperator,Important:C.modifier,Comment:C.blockComment,ColorLiteral:C.color,"ParenthesizedContent StringLiteral":C.string,":":C.punctuation,"PseudoOp #":C.derefOperator,"; ,":C.separator,"( )":C.paren,"[ ]":C.squareBracket,"{ }":C.brace}),NM={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},WM={__proto__:null,or:98,and:98,not:106,only:106,layer:170},qM={__proto__:null,selector:112,layer:166},jM={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},YM={__proto__:null,to:207},FM=oi.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[zM],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[IM,VM,LM,XM,1,2,3,4,new sl("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},dynamicPrecedences:{76:1},specialized:[{term:124,get:r=>NM[r]||-1},{term:125,get:r=>WM[r]||-1},{term:4,get:r=>qM[r]||-1},{term:25,get:r=>jM[r]||-1},{term:123,get:r=>YM[r]||-1}],tokenPrec:1963});let ac=null;function lc(){if(!ac&&typeof document=="object"&&document.body){let{style:r}=document.body,e=[],t=new Set;for(let n in r)n!="cssText"&&n!="cssFloat"&&typeof r[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,s=>"-"+s.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));ac=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return ac||[]}const fp=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(r=>({type:"class",label:r})),pp=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(r=>({type:"keyword",label:r})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(r=>({type:"constant",label:r}))),UM=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(r=>({type:"type",label:r})),GM=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(r=>({type:"keyword",label:r})),mn=/^(\w[\w-]*|-\w[\w-]*|)$/,HM=/^-(-[\w-]*)?$/;function KM(r,e){var t;if((r.name=="("||r.type.isError)&&(r=r.parent||r),r.name!="ArgList")return!1;let n=(t=r.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}const mp=new Qg,JM=["Declaration"];function e4(r){for(let e=r;;){if(e.type.isTop)return e;if(!(e=e.parent))return r}}function B0(r,e,t){if(e.to-e.from>4096){let n=mp.get(e);if(n)return n;let s=[],i=new Set,o=e.cursor(lt.IncludeAnonymous);if(o.firstChild())do for(let a of B0(r,o.node,t))i.has(a.label)||(i.add(a.label),s.push(a));while(o.nextSibling());return mp.set(e,s),s}else{let n=[],s=new Set;return e.cursor().iterate(i=>{var o;if(t(i)&&i.matchContext(JM)&&((o=i.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=r.sliceString(i.from,i.to);s.has(a)||(s.add(a),n.push({label:a,type:"variable"}))}}),n}}const t4=r=>e=>{let{state:t,pos:n}=e,s=ft(t).resolveInner(n,-1),i=s.type.isError&&s.from==s.to-1&&t.doc.sliceString(s.from,s.to)=="-";if(s.name=="PropertyName"||(i||s.name=="TagName")&&/^(Block|Styles)$/.test(s.resolve(s.to).name))return{from:s.from,options:lc(),validFor:mn};if(s.name=="ValueName")return{from:s.from,options:pp,validFor:mn};if(s.name=="PseudoClassName")return{from:s.from,options:fp,validFor:mn};if(r(s)||(e.explicit||i)&&KM(s,t.doc))return{from:r(s)||i?s.from:n,options:B0(t.doc,e4(s),r),validFor:HM};if(s.name=="TagName"){for(let{parent:l}=s;l;l=l.parent)if(l.name=="Block")return{from:s.from,options:lc(),validFor:mn};return{from:s.from,options:UM,validFor:mn}}if(s.name=="AtKeyword")return{from:s.from,options:GM,validFor:mn};if(!e.explicit)return null;let o=s.resolve(n),a=o.childBefore(n);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:fp,validFor:mn}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:pp,validFor:mn}:o.name=="Block"||o.name=="Styles"?{from:n,options:lc(),validFor:mn}:null},r4=t4(r=>r.name=="VariableName"),ol=ri.define({name:"css",parser:FM.configure({props:[Po.add({Declaration:xa()}),hi.add({"Block KeyframeList":Zg})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function n4(){return new so(ol,ol.data.of({autocomplete:r4}))}const s4=316,i4=317,gp=1,o4=2,a4=3,l4=4,c4=318,u4=320,h4=321,d4=5,f4=6,p4=0,vu=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Z0=125,m4=59,bu=47,g4=42,O4=43,v4=45,b4=60,x4=44,y4=63,k4=46,w4=91,S4=new b0({start:!1,shift(r,e){return e==d4||e==f4||e==u4?r:e==h4},strict:!1}),$4=new br((r,e)=>{let{next:t}=r;(t==Z0||t==-1||e.context)&&r.acceptToken(c4)},{contextual:!0,fallback:!0}),C4=new br((r,e)=>{let{next:t}=r,n;vu.indexOf(t)>-1||t==bu&&((n=r.peek(1))==bu||n==g4)||t!=Z0&&t!=m4&&t!=-1&&!e.context&&r.acceptToken(s4)},{contextual:!0}),Q4=new br((r,e)=>{r.next==w4&&!e.context&&r.acceptToken(i4)},{contextual:!0}),P4=new br((r,e)=>{let{next:t}=r;if(t==O4||t==v4){if(r.advance(),t==r.next){r.advance();let n=!e.context&&e.canShift(gp);r.acceptToken(n?gp:o4)}}else t==y4&&r.peek(1)==k4&&(r.advance(),r.advance(),(r.next<48||r.next>57)&&r.acceptToken(a4))},{contextual:!0});function cc(r,e){return r>=65&&r<=90||r>=97&&r<=122||r==95||r>=192||!e&&r>=48&&r<=57}const T4=new br((r,e)=>{if(r.next!=b4||!e.dialectEnabled(p4)||(r.advance(),r.next==bu))return;let t=0;for(;vu.indexOf(r.next)>-1;)r.advance(),t++;if(cc(r.next,!0)){for(r.advance(),t++;cc(r.next,!1);)r.advance(),t++;for(;vu.indexOf(r.next)>-1;)r.advance(),t++;if(r.next==x4)return;for(let n=0;;n++){if(n==7){if(!cc(r.next,!0))return;break}if(r.next!="extends".charCodeAt(n))break;r.advance(),t++}}r.acceptToken(l4,-t)}),M4=ui({"get set async static":C.modifier,"for while do if else switch try catch finally return throw break continue default case defer":C.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":C.operatorKeyword,"let var const using function class extends":C.definitionKeyword,"import export from":C.moduleKeyword,"with debugger new":C.keyword,TemplateString:C.special(C.string),super:C.atom,BooleanLiteral:C.bool,this:C.self,null:C.null,Star:C.modifier,VariableName:C.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":C.function(C.variableName),VariableDefinition:C.definition(C.variableName),Label:C.labelName,PropertyName:C.propertyName,PrivatePropertyName:C.special(C.propertyName),"CallExpression/MemberExpression/PropertyName":C.function(C.propertyName),"FunctionDeclaration/VariableDefinition":C.function(C.definition(C.variableName)),"ClassDeclaration/VariableDefinition":C.definition(C.className),"NewExpression/VariableName":C.className,PropertyDefinition:C.definition(C.propertyName),PrivatePropertyDefinition:C.definition(C.special(C.propertyName)),UpdateOp:C.updateOperator,"LineComment Hashbang":C.lineComment,BlockComment:C.blockComment,Number:C.number,String:C.string,Escape:C.escape,ArithOp:C.arithmeticOperator,LogicOp:C.logicOperator,BitOp:C.bitwiseOperator,CompareOp:C.compareOperator,RegExp:C.regexp,Equals:C.definitionOperator,Arrow:C.function(C.punctuation),": Spread":C.punctuation,"( )":C.paren,"[ ]":C.squareBracket,"{ }":C.brace,"InterpolationStart InterpolationEnd":C.special(C.brace),".":C.derefOperator,", ;":C.separator,"@":C.meta,TypeName:C.typeName,TypeDefinition:C.definition(C.typeName),"type enum interface implements namespace module declare":C.definitionKeyword,"abstract global Privacy readonly override":C.modifier,"is keyof unique infer asserts":C.operatorKeyword,JSXAttributeValue:C.attributeValue,JSXText:C.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":C.angleBracket,"JSXIdentifier JSXNameSpacedName":C.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":C.attributeName,"JSXBuiltin/JSXIdentifier":C.standard(C.tagName)}),A4={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},_4={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},R4={__proto__:null,"<":193},B4=oi.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O![*^O(T*XO!k)OP~P!1uO#k*aO~O!l*bO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T*dO(VTO(YUO(a$uO(y$}O(z%PO~O![*gO!Y)PP~P!3tOr*sOs!nO!S*iO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO(e!mO~O!^*pO~P!5iO#S$dOn(`X!Q(`X'y(`X(y(`X(z(`X!](`X#`(`X~Og(`X$O(`X~P!6kOn*xO#`*wOg(_X!](_X~O!]*yOg(^X~Oj%dOk%dOl%dO(T&ZOg(^P~Os*|O~Og)}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hO![+ZO!](^O!_%iO(T%gO!Y(vP~Os'[O!S+]O![+[O(VTO(YUO(e(|O~O!^(xP~P!9|O!]+^Oa)TX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WO![/mO!](^O(T/lO!Y(vP!Y)PP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:S4,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[M4],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[C4,Q4,P4,T4,2,3,4,5,6,7,8,9,10,11,12,13,14,$4,new sl("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new sl("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:r=>A4[r]||-1},{term:343,get:r=>_4[r]||-1},{term:95,get:r=>R4[r]||-1}],tokenPrec:15201}),E0=[Jt("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Jt("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Jt("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Jt("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Jt("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Jt(`try {
28
- \${}
29
- } catch (\${error}) {
30
- \${}
31
- }`,{label:"try",detail:"/ catch block",type:"keyword"}),Jt("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Jt(`if (\${}) {
32
- \${}
33
- } else {
34
- \${}
35
- }`,{label:"if",detail:"/ else block",type:"keyword"}),Jt(`class \${name} {
36
- constructor(\${params}) {
37
- \${}
38
- }
39
- }`,{label:"class",detail:"definition",type:"keyword"}),Jt('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Jt('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Z4=E0.concat([Jt("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Jt("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Jt("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Op=new Qg,D0=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function _i(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}const E4=["FunctionDeclaration"],D4={FunctionDeclaration:_i("function"),ClassDeclaration:_i("class"),ClassExpression:()=>!0,EnumDeclaration:_i("constant"),TypeAliasDeclaration:_i("type"),NamespaceDeclaration:_i("namespace"),VariableDefinition(r,e){r.matchContext(E4)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function L0(r,e){let t=Op.get(e);if(t)return t;let n=[],s=!0;function i(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(lt.IncludeAnonymous).iterate(o=>{if(s)s=!1;else if(o.name){let a=D4[o.name];if(a&&a(o,i)||D0.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of L0(r,o.node))n.push(a);return!1}}),Op.set(e,n),n}const vp=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,X0=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function L4(r){let e=ft(r.state).resolveInner(r.pos,-1);if(X0.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&vp.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let s=e;s;s=s.parent)D0.has(s.name)&&(n=n.concat(L0(r.state.doc,s)));return{options:n,from:t?e.from:r.pos,validFor:vp}}const sn=ri.define({name:"javascript",parser:B4.configure({props:[Po.add({IfStatement:xa({except:/^\s*({|else\b)/}),TryStatement:xa({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:QC,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:CC({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":xa({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),hi.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Zg,BlockComment(r){return{from:r.from+2,to:r.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),I0={test:r=>/^JSX/.test(r.name),facet:rh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},V0=sn.configure({dialect:"ts"},"typescript"),z0=sn.configure({dialect:"jsx",props:[nh.add(r=>r.isTop?[I0]:void 0)]}),N0=sn.configure({dialect:"jsx ts",props:[nh.add(r=>r.isTop?[I0]:void 0)]},"typescript");let W0=r=>({label:r,type:"keyword"});const q0="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(W0),X4=q0.concat(["declare","implements","private","protected","public"].map(W0));function I4(r={}){let e=r.jsx?r.typescript?N0:z0:r.typescript?V0:sn,t=r.typescript?Z4.concat(X4):E0.concat(q0);return new so(e,[sn.data.of({autocomplete:FP(X0,ZO(t))}),sn.data.of({autocomplete:L4}),r.jsx?N4:[]])}function V4(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function bp(r,e,t=r.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}const z4=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),N4=Se.inputHandler.of((r,e,t,n,s)=>{if((z4?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!sn.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c;let{head:u}=l,h=ft(o).resolveInner(u-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(o.doc.sliceString(u-1,u)!=n||h.name=="JSXAttributeValue"&&h.to>u)){if(n==">"&&h.name=="JSXFragmentTag")return{range:l,changes:{from:u,insert:"</>"}};if(n=="/"&&h.name=="JSXStartCloseTag"){let p=h.parent,g=p.parent;if(g&&p.from==u-2&&((f=bp(o.doc,g.firstChild,u))||((c=g.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let O=`${f}>`;return{range:re.cursor(u+O.length,-1),changes:{from:u,insert:O}}}}else if(n==">"){let p=V4(h);if(p&&p.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(u,u+2))&&(f=bp(o.doc,p,u)))return{range:l,changes:{from:u,insert:`</${f}>`}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Ri=["_blank","_self","_top","_parent"],uc=["ascii","utf-8","utf-16","latin1","latin1"],hc=["get","post","put","delete"],dc=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],hr=["true","false"],De={},W4={a:{attrs:{href:null,ping:null,type:null,media:null,target:Ri,hreflang:null}},abbr:De,address:De,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:De,aside:De,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:De,base:{attrs:{href:null,target:Ri}},bdi:De,bdo:De,blockquote:{attrs:{cite:null}},body:De,br:De,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:dc,formmethod:hc,formnovalidate:["novalidate"],formtarget:Ri,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:De,center:De,cite:De,code:De,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:De,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:De,div:De,dl:De,dt:De,em:De,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:De,figure:De,footer:De,form:{attrs:{action:null,name:null,"accept-charset":uc,autocomplete:["on","off"],enctype:dc,method:hc,novalidate:["novalidate"],target:Ri}},h1:De,h2:De,h3:De,h4:De,h5:De,h6:De,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:De,hgroup:De,hr:De,html:{attrs:{manifest:null}},i:De,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:dc,formmethod:hc,formnovalidate:["novalidate"],formtarget:Ri,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:De,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:De,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:De,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:uc,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:De,noscript:De,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:De,param:{attrs:{name:null,value:null}},pre:De,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:De,rt:De,ruby:De,samp:De,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:uc}},section:De,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:De,source:{attrs:{src:null,type:null,media:null}},span:De,strong:De,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:De,summary:De,sup:De,table:De,tbody:De,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:De,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:De,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:De,time:{attrs:{datetime:null}},title:De,tr:De,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:De,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:De},j0={accesskey:null,class:null,contenteditable:hr,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:hr,autocorrect:hr,autocapitalize:hr,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":hr,"aria-autocomplete":["inline","list","both","none"],"aria-busy":hr,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":hr,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":hr,"aria-hidden":hr,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":hr,"aria-multiselectable":hr,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":hr,"aria-relevant":null,"aria-required":hr,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Y0="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(r=>"on"+r);for(let r of Y0)j0[r]=null;class go{constructor(e,t){this.tags={...W4,...e},this.globalAttrs={...j0,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}go.default=new go;function ai(r,e,t=r.length){if(!e)return"";let n=e.firstChild,s=n&&n.getChild("TagName");return s?r.sliceString(s.from,Math.min(s.to,t)):""}function li(r,e=!1){for(;r;r=r.parent)if(r.name=="Element")if(e)e=!1;else return r;return null}function F0(r,e,t){let n=t.tags[ai(r,li(e))];return n?.children||t.allTags}function Mh(r,e){let t=[];for(let n=li(e);n&&!n.type.isTop;n=li(n.parent)){let s=ai(r,n);if(s&&n.lastChild.name=="CloseTag")break;s&&t.indexOf(s)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(s)}return t}const U0=/^[:\-\.\w\u00b7-\uffff]*$/;function xp(r,e,t,n,s){let i=/\s*>/.test(r.sliceDoc(s,s+5))?"":">",o=li(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:s,options:F0(r.doc,o,e).map(a=>({label:a,type:"type"})).concat(Mh(r.doc,t).map((a,l)=>({label:"/"+a,apply:"/"+a+i,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function yp(r,e,t,n){let s=/\s*>/.test(r.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Mh(r.doc,e).map((i,o)=>({label:i,apply:i+s,type:"type",boost:99-o})),validFor:U0}}function q4(r,e,t,n){let s=[],i=0;for(let o of F0(r.doc,t,e))s.push({label:"<"+o,type:"type"});for(let o of Mh(r.doc,t))s.push({label:"</"+o+">",type:"type",boost:99-i++});return{from:n,to:n,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function j4(r,e,t,n,s){let i=li(t),o=i?e.tags[ai(r.doc,i)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:s,options:l.map(c=>({label:c,type:"property"})),validFor:U0}}function Y4(r,e,t,n,s){var i;let o=(i=t.parent)===null||i===void 0?void 0:i.getChild("AttributeName"),a=[],l;if(o){let c=r.sliceDoc(o.from,o.to),u=e.globalAttrs[c];if(!u){let h=li(t),f=h?e.tags[ai(r.doc,h)]:null;u=f?.attrs&&f.attrs[c]}if(u){let h=r.sliceDoc(n,s).toLowerCase(),f='"',p='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",p=r.sliceDoc(s,s+1)==h[0]?"":h[0],h=h.slice(1),n++):l=/^[^\s<>='"]*$/;for(let g of u)a.push({label:g,apply:f+g+p,type:"constant"})}}return{from:n,to:s,options:a,validFor:l}}function G0(r,e){let{state:t,pos:n}=e,s=ft(t).resolveInner(n,-1),i=s.resolve(n);for(let o=n,a;i==s&&(a=s.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;i=s=a,o=l.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?yp(t,s,s.from,n):xp(t,r,s,s.from,n):s.name=="StartTag"||s.name=="IncompleteTag"?xp(t,r,s,n,n):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?yp(t,s,n,n):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?j4(t,r,s,s.name=="AttributeName"?s.from:n,n):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?Y4(t,r,s,s.name=="Is"?n:s.from,n):e.explicit&&(i.name=="Element"||i.name=="Text"||i.name=="Document")?q4(t,r,s,n):null}function F4(r){return G0(go.default,r)}function U4(r){let{extraTags:e,extraGlobalAttributes:t}=r,n=t||e?new go(e,t):go.default;return s=>G0(n,s)}const G4=sn.parser.configure({top:"SingleExpression"}),H0=[{tag:"script",attrs:r=>r.type=="text/typescript"||r.lang=="ts",parser:V0.parser},{tag:"script",attrs:r=>r.type=="text/babel"||r.type=="text/jsx",parser:z0.parser},{tag:"script",attrs:r=>r.type=="text/typescript-jsx",parser:N0.parser},{tag:"script",attrs(r){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(r.type)},parser:G4},{tag:"script",attrs(r){return!r.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(r.type)},parser:sn.parser},{tag:"style",attrs(r){return(!r.lang||r.lang=="css")&&(!r.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(r.type))},parser:ol.parser}],K0=[{name:"style",parser:ol.parser.configure({top:"Styles"})}].concat(Y0.map(r=>({name:r,parser:sn.parser}))),J0=ri.define({name:"html",parser:yM.configure({props:[Po.add({Element(r){let e=/^(\s*)(<\/)?/.exec(r.textAfter);return r.node.to<=r.pos+e[0].length?r.continue():r.lineIndent(r.node.from)+(e[2]?0:r.unit)},"OpenTag CloseTag SelfClosingTag"(r){return r.column(r.node.from)+r.unit},Document(r){if(r.pos+/\s*/.exec(r.textAfter)[0].length<r.node.to)return r.continue();let e=null,t;for(let n=r.node;;){let s=n.lastChild;if(!s||s.name!="Element"||s.to!=n.to)break;e=n=s}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?r.lineIndent(e.from)+r.unit:null}}),hi.add({Element(r){let e=r.firstChild,t=r.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:r.to}}}),Fg.add({"OpenTag CloseTag":r=>r.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),wa=J0.configure({wrap:T0(H0,K0)});function H4(r={}){let e="",t;r.matchClosingTags===!1&&(e="noMatch"),r.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(r.nestedLanguages&&r.nestedLanguages.length||r.nestedAttributes&&r.nestedAttributes.length)&&(t=T0((r.nestedLanguages||[]).concat(H0),(r.nestedAttributes||[]).concat(K0)));let n=t?J0.configure({wrap:t,dialect:e}):e?wa.configure({dialect:e}):wa;return new so(n,[wa.data.of({autocomplete:U4(r)}),r.autoCloseTags!==!1?K4:[],I4().support,n4().support])}const kp=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),K4=Se.inputHandler.of((r,e,t,n,s)=>{if(r.composing||r.state.readOnly||e!=t||n!=">"&&n!="/"||!wa.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c,u,h;let f=o.doc.sliceString(l.from-1,l.to)==n,{head:p}=l,g=ft(o).resolveInner(p,-1),O;if(f&&n==">"&&g.name=="EndTag"){let x=g.parent;if(((u=(c=x.parent)===null||c===void 0?void 0:c.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(O=ai(o.doc,x.parent,p))&&!kp.has(O)){let b=p+(o.doc.sliceString(p,p+1)===">"?1:0),k=`</${O}>`;return{range:l,changes:{from:p,to:b,insert:k}}}}else if(f&&n=="/"&&g.name=="IncompleteCloseTag"){let x=g.parent;if(g.from==p-2&&((h=x.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(O=ai(o.doc,x,p))&&!kp.has(O)){let b=p+(o.doc.sliceString(p,p+1)===">"?1:0),k=`${O}>`;return{range:re.cursor(p+k.length,-1),changes:{from:p,to:b,insert:k}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),e1=rh({commentTokens:{block:{open:"<!--",close:"-->"}}}),t1=new Fe,r1=mT.configure({props:[hi.add(r=>!r.is("Block")||r.is("Document")||xu(r)!=null||J4(r)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),t1.add(xu),Po.add({Document:()=>null}),ms.add({Document:e1})]});function xu(r){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(r.name);return e?+e[1]:void 0}function J4(r){return r.name=="OrderedList"||r.name=="BulletList"}function eA(r,e){let t=r;for(;;){let n=t.nextSibling,s;if(!n||(s=xu(n.type))!=null&&s<=e)break;t=n}return t.to}const tA=Bg.of((r,e,t)=>{for(let n=ft(r).resolveInner(t,-1);n&&!(n.from<e);n=n.parent){let s=n.type.prop(t1);if(s==null)continue;let i=eA(n,s);if(i>t)return{from:t,to:i}}return null});function Ah(r){return new $r(e1,r,[],"markdown")}const rA=Ah(r1),nA=r1.configure([CT,PT,QT,TT,{props:[hi.add({Table:(r,e)=>({from:e.doc.lineAt(r.from).to,to:r.to})})]}]),al=Ah(nA);function sA(r,e){return t=>{if(t&&r){let n=null;if(t=/\S*/.exec(t)[0],typeof r=="function"?n=r(t):n=za.matchLanguageName(r,t,!0),n instanceof za)return n.support?n.support.language.parser:no.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}class fc{constructor(e,t,n,s,i,o,a){this.node=e,this.from=t,this.to=n,this.spaceBefore=s,this.spaceAfter=i,this.type=o,this.item=a}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length<e;)n+=" ";return n}else{for(let s=this.to-this.from-n.length-this.spaceAfter.length;s>0;s--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+s1(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function n1(r,e){let t=[],n=[];for(let s=r;s;s=s.parent){if(s.name=="FencedCode")return n;(s.name=="ListItem"||s.name=="Blockquote")&&t.push(s)}for(let s=t.length-1;s>=0;s--){let i=t[s],o,a=e.lineAt(i.from),l=i.from-a.from;if(i.name=="Blockquote"&&(o=/^ *>( ?)/.exec(a.text.slice(l))))n.push(new fc(i,l,l+o[0].length,"",o[1],">",null));else if(i.name=="ListItem"&&i.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(a.text.slice(l)))){let c=o[3],u=o[0].length;c.length>=4&&(c=c.slice(0,c.length-4),u-=4),n.push(new fc(i.parent,l,l+u,o[1],c,o[2],i))}else if(i.name=="ListItem"&&i.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(l)))){let c=o[4],u=o[0].length;c.length>4&&(c=c.slice(0,c.length-4),u-=4);let h=o[2];o[3]&&(h+=o[3].replace(/[xX]/," ")),n.push(new fc(i.parent,l,l+u,o[1],c,h,i))}}return n}function s1(r,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(r.from,r.from+10))}function pc(r,e,t,n=0){for(let s=-1,i=r;;){if(i.name=="ListItem"){let a=s1(i,e),l=+a[2];if(s>=0){if(l!=s+1)return;t.push({from:i.from+a[1].length,to:i.from+a[0].length,insert:String(s+2+n)})}s=l}let o=i.nextSibling;if(!o)break;i=o}}function _h(r,e){let t=/^[ \t]*/.exec(r)[0].length;if(!t||e.facet(Qo)!=" ")return r;let n=Zr(r,4,t),s="";for(let i=n;i>0;)i>=4?(s+=" ",i-=4):(s+=" ",i--);return s+r.slice(t)}const iA=(r={})=>({state:e,dispatch:t})=>{let n=ft(e),{doc:s}=e,i=null,o=e.changeByRange(a=>{if(!a.empty||!al.isActiveAt(e,a.from,-1)&&!al.isActiveAt(e,a.from,1))return i={range:a};let l=a.from,c=s.lineAt(l),u=n1(n.resolveInner(l,-1),s);for(;u.length&&u[u.length-1].from>l-c.from;)u.pop();if(!u.length)return i={range:a};let h=u[u.length-1];if(h.to-h.spaceAfter.length>l-c.from)return i={range:a};let f=l>=h.to-h.spaceAfter.length&&!/\S/.test(c.text.slice(h.to));if(h.item&&f){let b=h.node.firstChild,k=h.node.getChild("ListItem","ListItem");if(b.to>=l||k&&k.to<l||c.from>0&&!/[^\s>]/.test(s.lineAt(c.from-1).text)||r.nonTightLists===!1){let $=u.length>1?u[u.length-2]:null,P,R="";$&&$.item?(P=c.from+$.from,R=$.marker(s,1)):P=c.from+($?$.to:0);let V=[{from:P,to:l,insert:R}];return h.node.name=="OrderedList"&&pc(h.item,s,V,-2),$&&$.node.name=="OrderedList"&&pc($.item,s,V),{range:re.cursor(P+R.length),changes:V}}else{let $=Sp(u,e,c);return{range:re.cursor(l+$.length+1),changes:{from:c.from,insert:$+e.lineBreak}}}}if(h.node.name=="Blockquote"&&f&&c.from){let b=s.lineAt(c.from-1),k=/>\s*$/.exec(b.text);if(k&&k.index==h.from){let $=e.changes([{from:b.from+k.index,to:b.to},{from:c.from+h.from,to:c.to}]);return{range:a.map($),changes:$}}}let p=[];h.node.name=="OrderedList"&&pc(h.item,s,p);let g=h.item&&h.item.from<c.from,O="";if(!g||/^[\s\d.)\-+*>]*/.exec(c.text)[0].length>=h.to)for(let b=0,k=u.length-1;b<=k;b++)O+=b==k&&!g?u[b].marker(s,1):u[b].blank(b<k?Zr(c.text,4,u[b+1].from)-O.length:null);let x=l;for(;x>c.from&&/\s/.test(c.text.charAt(x-c.from-1));)x--;return O=_h(O,e),aA(h.node,e.doc)&&(O=Sp(u,e,c)+e.lineBreak+O),p.push({from:x,to:l,insert:e.lineBreak+O}),{range:re.cursor(x+O.length+1),changes:p}});return i?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},oA=iA();function wp(r){return r.name=="QuoteMark"||r.name=="ListMark"}function aA(r,e){if(r.name!="OrderedList"&&r.name!="BulletList")return!1;let t=r.firstChild,n=r.getChild("ListItem","ListItem");if(!n)return!1;let s=e.lineAt(t.to),i=e.lineAt(n.from),o=/^[\s>]*$/.test(s.text);return s.number+(o?0:1)<i.number}function Sp(r,e,t){let n="";for(let s=0,i=r.length-2;s<=i;s++)n+=r[s].blank(s<i?Zr(t.text,4,r[s+1].from)-n.length:null,s<i);return _h(n,e)}function lA(r,e){let t=r.resolveInner(e,-1),n=e;wp(t)&&(n=t.from,t=t.parent);for(let s;s=t.childBefore(n);)if(wp(s))n=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")t=s.lastChild,n=t.to;else break;return t}const cA=({state:r,dispatch:e})=>{let t=ft(r),n=null,s=r.changeByRange(i=>{let o=i.from,{doc:a}=r;if(i.empty&&al.isActiveAt(r,i.from)){let l=a.lineAt(o),c=n1(lA(t,o),a);if(c.length){let u=c[c.length-1],h=u.to-u.spaceAfter.length+(u.spaceAfter?1:0);if(o-l.from>h&&!/\S/.test(l.text.slice(h,o-l.from)))return{range:re.cursor(l.from+h),changes:{from:l.from+h,to:o}};if(o-l.from==h&&(!u.item||l.from<=u.item.from||!/\S/.test(l.text.slice(0,u.to)))){let f=l.from+u.from;if(u.item&&u.node.from<u.item.from&&/\S/.test(l.text.slice(u.from,u.to))){let p=u.blank(Zr(l.text,4,u.to)-Zr(l.text,4,u.from));return f==l.from&&(p=_h(p,r)),{range:re.cursor(f+p.length),changes:{from:f,to:l.from+u.to,insert:p}}}if(f<o)return{range:re.cursor(f),changes:{from:f,to:o}}}}}return n={range:i}});return n?!1:(e(r.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},uA=[{key:"Enter",run:oA},{key:"Backspace",run:cA}],i1=H4({matchClosingTags:!1});function hA(r={}){let{codeLanguages:e,defaultCodeLanguage:t,addKeymap:n=!0,base:{parser:s}=rA,completeHTMLTags:i=!0,pasteURLAsLink:o=!0,htmlTagLanguage:a=i1}=r;if(!(s instanceof $l))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let l=r.extensions?[r.extensions]:[],c=[a.support,tA],u;o&&c.push(mA),t instanceof so?(c.push(t.support),u=t.language):t&&(u=t);let h=e||u?sA(e,u):void 0;l.push(OT({codeParser:h,htmlParser:a.language.parser})),n&&c.push($n.high(So.of(uA)));let f=Ah(s.configure(l));return i&&c.push(f.data.of({autocomplete:dA})),new so(f,c)}function dA(r){let{state:e,pos:t}=r,n=/<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(t-25,t));if(!n)return null;let s=ft(e).resolveInner(t,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:t-n[0].length,to:t,options:fA(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let mc=null;function fA(){if(mc)return mc;let r=F4(new fh(tt.create({extensions:i1}),0,!0));return mc=r?r.options:[]}const pA=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,mA=Se.domEventHandlers({paste:(r,e)=>{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let s=(t=r.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!al.isActiveAt(e.state,n.from,1)))return!1;let i=ft(e.state),o=!1;return i.iterate({from:n.from,to:n.to,enter:a=>{(a.from>n.from||pA.test(a.name))&&(o=!0)},leave:a=>{a.to<n.to&&(o=!0)}}),o?!1:(e.dispatch({changes:[{from:n.from,insert:"["},{from:n.to,insert:`](${s})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),gA="#e5c07b",$p="#e06c75",OA="#56b6c2",vA="#ffffff",Sa="#abb2bf",yu="#7d8799",bA="#61afef",xA="#98c379",Cp="#d19a66",yA="#c678dd",kA="#21252b",Qp="#2c313a",Pp="#282c34",gc="#353a42",wA="#3E4451",Tp="#528bff",SA=Se.theme({"&":{color:Sa,backgroundColor:Pp},".cm-content":{caretColor:Tp},".cm-cursor, .cm-dropCursor":{borderLeftColor:Tp},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:wA},".cm-panels":{backgroundColor:kA,color:Sa},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Pp,color:yu,border:"none"},".cm-activeLineGutter":{backgroundColor:Qp},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:gc},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:gc,borderBottomColor:gc},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Qp,color:Sa}}},{dark:!0}),$A=Mo.define([{tag:C.keyword,color:yA},{tag:[C.name,C.deleted,C.character,C.propertyName,C.macroName],color:$p},{tag:[C.function(C.variableName),C.labelName],color:bA},{tag:[C.color,C.constant(C.name),C.standard(C.name)],color:Cp},{tag:[C.definition(C.name),C.separator],color:Sa},{tag:[C.typeName,C.className,C.number,C.changed,C.annotation,C.modifier,C.self,C.namespace],color:gA},{tag:[C.operator,C.operatorKeyword,C.url,C.escape,C.regexp,C.link,C.special(C.string)],color:OA},{tag:[C.meta,C.comment],color:yu},{tag:C.strong,fontWeight:"bold"},{tag:C.emphasis,fontStyle:"italic"},{tag:C.strikethrough,textDecoration:"line-through"},{tag:C.link,color:yu,textDecoration:"underline"},{tag:C.heading,fontWeight:"bold",color:$p},{tag:[C.atom,C.bool,C.special(C.variableName)],color:Cp},{tag:[C.processingInstruction,C.string,C.inserted],color:xA},{tag:C.invalid,color:vA}]),CA=[SA,Wg($A)],QA=Ve({__name:"MarkdownCodeEditor",props:{modelValue:{},readOnly:{type:Boolean,default:!1},lineToReveal:{default:null}},emits:["update:modelValue"],setup(r,{emit:e}){const t=r,n=e,s=T(null);let i=null,o=!1,a=null;const l=je.define(),c=je.define(),u=At.define({create(){return Le.none},update(g,O){let x=g.map(O.changes);for(const b of O.effects)if(b.is(c)&&(x=Le.none),b.is(l)){const k=Math.max(1,Math.min(b.value,O.state.doc.lines)),$=O.state.doc.line(k);x=Le.set([Le.line({class:"cm-target-line"}).range($.from)])}return x},provide:g=>Se.decorations.from(g)});function h(){i&&(a&&clearTimeout(a),a=setTimeout(()=>{i&&i.dispatch({effects:c.of(void 0)})},1600))}function f(g){if(!i)return;const O=Math.max(1,Math.min(g,i.state.doc.lines)),x=i.state.doc.line(O);i.dispatch({selection:{anchor:x.from},effects:[Se.scrollIntoView(x.from,{y:"center"}),l.of(O)]}),i.focus(),h()}function p(g,O){return tt.create({doc:g,extensions:[nT,hA(),CA,Se.lineWrapping,u,Se.updateListener.of(x=>{!x.docChanged||o||n("update:modelValue",x.state.doc.toString())}),Se.theme({"&":{height:"100%",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",fontSize:"13px",backgroundColor:"rgb(var(--color-retro-black))",color:"rgb(var(--color-retro-text))"},".cm-scroller":{overflow:"auto",lineHeight:"1.6"},".cm-gutters":{backgroundColor:"rgb(var(--color-retro-dark))",color:"rgb(var(--color-retro-subtle))",borderRight:"1px solid rgb(var(--color-retro-border))"},".cm-content":{caretColor:"rgb(var(--color-retro-cyan))",padding:"12px 0"},".cm-activeLine":{backgroundColor:"rgba(34, 211, 238, 0.08)"},".cm-selectionBackground, &.cm-focused .cm-selectionBackground":{backgroundColor:"rgba(34, 211, 238, 0.22)"}}),tt.readOnly.of(O)]})}return Ot(()=>{s.value&&(i=new Se({state:p(t.modelValue,t.readOnly),parent:s.value}),t.lineToReveal&&f(t.lineToReveal))}),We(()=>t.modelValue,g=>{if(!i)return;const O=i.state.doc.toString();O!==g&&(o=!0,i.dispatch({changes:{from:0,to:O.length,insert:g}}),o=!1)}),We(()=>t.lineToReveal,g=>{g&&f(g)}),g1(()=>{a&&clearTimeout(a),i&&(i.destroy(),i=null)}),(g,O)=>(v(),y("div",{ref_key:"rootRef",ref:s,class:"h-full w-full"},null,512))}}),PA=ci(QA,[["__scopeId","data-v-d77d4160"]]),TA={class:"fixed inset-0 z-50 flex items-center justify-center"},MA={class:"relative w-[96vw] h-[94vh] bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},AA={class:"flex-shrink-0 flex items-center justify-between px-4 h-12 border-b border-retro-border bg-retro-dark"},_A={class:"flex items-center gap-3 min-w-0"},RA={class:"text-sm font-mono font-bold text-retro-cyan truncate"},BA={class:"text-xs font-mono text-retro-subtle"},ZA={class:"flex items-center gap-2"},EA=["disabled"],DA={class:"flex-shrink-0 flex items-center gap-0 border-b border-retro-border bg-retro-dark overflow-x-auto"},LA=["onClick"],XA={class:"flex-1 min-h-0 overflow-y-auto"},IA={key:0,class:"p-5 max-w-6xl mx-auto"},VA={key:0,class:"flex items-center justify-center py-12"},zA={key:1,class:"flex flex-col items-center justify-center py-12 text-center px-4"},NA={class:"text-sm font-mono text-retro-red"},WA={key:2,class:"space-y-4"},qA={key:0,class:"rounded border border-retro-cyan/40 bg-retro-cyan/10 px-3 py-2 text-xs font-mono text-retro-cyan"},jA={class:"grid grid-cols-2 lg:grid-cols-5 gap-2"},YA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},FA={class:"text-sm font-mono text-retro-text"},UA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},GA={class:"text-sm font-mono text-retro-cyan"},HA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},KA={class:"text-sm font-mono text-retro-yellow"},JA={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},e_={class:"text-sm font-mono text-retro-green"},t_={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},r_={class:"text-sm font-mono text-retro-text"},n_={class:"rounded border border-retro-border bg-retro-panel px-3 py-3"},s_={class:"flex items-center justify-between gap-2 mb-2"},i_={class:"text-[11px] font-mono text-retro-subtle"},o_={key:0,class:"text-xs font-mono text-retro-green"},a_={key:1,class:"space-y-2"},l_={class:"uppercase tracking-wide mr-2"},c_={class:"rounded border border-retro-border bg-retro-panel p-3 overflow-x-auto"},u_={class:"min-w-[760px]"},h_={class:"text-retro-text"},d_=["disabled","onClick"],f_=["disabled","onClick"],p_=["disabled","onClick"],m_={class:"text-retro-muted"},g_={key:1,class:"flex items-center justify-center py-12"},O_={key:2,class:"flex flex-col items-center justify-center py-12 text-center px-4"},v_={class:"text-sm font-mono text-retro-red"},b_={key:3,class:"flex flex-col items-center justify-center py-12 text-center"},x_={key:4,class:"h-full flex flex-col"},y_=["innerHTML"],k_=Ve({__name:"SpecViewerModal",props:{feature:{}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=vo(),{renderMarkdown:i}=Lp(),o=T(t.feature.files[0]?.filename||""),a=T("document"),l=T(""),c=T(!1),u=T(null),h=T(!1),f=T(""),p=T(!1),g=T(null),O=T(null),x=T(!1),b=T(null),k=T(null),$=ee(()=>{const I={critical:0,major:1,minor:2};return[...k.value?.alerts??[]].sort((z,xe)=>I[z.severity]-I[xe.severity])});function P(I){return I.status==="covered"?"text-retro-green border-retro-green/40 bg-retro-green/10":I.status==="partial"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-red border-retro-red/40 bg-retro-red/10"}function R(I){return I.severity==="critical"?"text-retro-red border-retro-red/40 bg-retro-red/10":I.severity==="major"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10"}async function V(){x.value=!0,b.value=null;try{k.value=await $fetch(`/api/specs/traceability/${t.feature.id}`)}catch{b.value="Failed to load traceability data",k.value=null}finally{x.value=!1}}async function L(I=o.value){if(I){c.value=!0,u.value=null;try{const z=`/api/specs/${t.feature.id}/${I}`,xe=await $fetch(z);l.value=xe.content}catch{u.value="Failed to load file",l.value=""}finally{c.value=!1}}}function ae(){L()}const ce=ee(()=>l.value?i(l.value):"");function Oe(I){O.value=null,a.value="document",h.value&&(h.value=!1),o.value=I,L()}function q(){h.value&&U(),a.value="traceability",!k.value&&!x.value&&V()}async function X(I,z,xe){z&&(o.value!==I?(o.value=I,await L(I)):l.value||await L(I),a.value="document",h.value=!0,f.value=l.value,g.value=null,O.value={filename:I,line:z,requirementId:xe},await Ut(),g.value=z)}function E(){f.value=l.value,g.value=null,h.value=!0}function U(){h.value=!1,f.value=""}async function j(){p.value=!0;try{const I=`/api/specs/${t.feature.id}/${o.value}`;await $fetch(I,{method:"PUT",body:{content:f.value}}),l.value=f.value,h.value=!1,s.success("Saved")}catch{s.error("Failed to save")}finally{p.value=!1}}function W(I){I.key==="Escape"&&(h.value?U():n("close"))}return Ot(()=>{window.addEventListener("keydown",W),L(),V()}),Ct(()=>{window.removeEventListener("keydown",W)}),(I,z)=>{const xe=PA;return v(),be(Pr,{to:"body"},[d("div",TA,[d("div",{class:"absolute inset-0 bg-black/80",onClick:z[0]||(z[0]=J=>n("close"))}),d("div",MA,[d("div",AA,[d("div",_A,[d("span",RA,_(r.feature.name),1),d("span",BA,_(r.feature.id),1)]),d("div",ZA,[m(h)?(v(),y($e,{key:0},[d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-muted transition-colors",onClick:U}," Cancel "),d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-cyan text-retro-cyan hover:bg-retro-cyan/10 transition-colors disabled:opacity-50",disabled:m(p),onClick:j},_(m(p)?"Saving...":"Save"),9,EA)],64)):m(a)==="document"&&m(l)&&!m(c)&&!m(u)?(v(),y("button",{key:1,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Edit",onClick:E},[te(m(Hp),{class:"h-4 w-4"})])):H("",!0),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (ESC)",onClick:z[1]||(z[1]=J=>n("close"))},[te(m(Qt),{class:"h-4 w-4"})])])]),d("div",DA,[d("button",{type:"button",class:Ze(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap flex items-center gap-1",[m(a)==="traceability"?"border-retro-magenta text-retro-magenta bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:q},[te(m(j1),{class:"h-3.5 w-3.5"}),z[3]||(z[3]=Xe(" Traceability ",-1))],2),(v(!0),y($e,null,Ye(r.feature.files,J=>(v(),y("button",{key:J.filename,type:"button",class:Ze(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap",[m(a)==="document"&&m(o)===J.filename?"border-retro-cyan text-retro-cyan bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:fe=>Oe(J.filename)},_(J.label),11,LA))),128))]),d("div",XA,[m(a)==="traceability"?(v(),y("div",IA,[m(x)?(v(),y("div",VA,[...z[4]||(z[4]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading traceability...",-1)])])):m(b)?(v(),y("div",zA,[d("p",NA,_(m(b)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:V}," Retry ")])):m(k)?(v(),y("div",WA,[m(O)?(v(),y("div",qA," Jump target: "+_(m(O).requirementId)+" → "+_(m(O).filename)+":"+_(m(O).line),1)):H("",!0),d("div",jA,[d("div",YA,[z[5]||(z[5]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"FR total",-1)),d("p",FA,_(m(k).summary.frTotal),1)]),d("div",UA,[z[6]||(z[6]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Plan coverage",-1)),d("p",GA,_(m(k).summary.frWithPlan)+"/"+_(m(k).summary.frTotal),1)]),d("div",HA,[z[7]||(z[7]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task mapping",-1)),d("p",KA,_(m(k).summary.frWithTasks)+"/"+_(m(k).summary.frTotal),1)]),d("div",JA,[z[8]||(z[8]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Fully covered",-1)),d("p",e_,_(m(k).summary.frFullyCovered)+"/"+_(m(k).summary.frTotal),1)]),d("div",t_,[z[9]||(z[9]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task progress",-1)),d("p",r_,_(m(k).summary.taskCompleted)+"/"+_(m(k).summary.taskTotal),1)])]),d("div",n_,[d("div",s_,[z[10]||(z[10]=d("h3",{class:"text-xs font-mono text-retro-text"},"Gap Alerts",-1)),d("span",i_,_(m($).length)+" issues",1)]),m($).length===0?(v(),y("div",o_," No traceability gaps detected. ")):(v(),y("div",a_,[(v(!0),y($e,null,Ye(m($),J=>(v(),y("div",{key:J.id,class:Ze(["rounded border px-2.5 py-2 text-xs font-mono",R(J)])},[d("span",l_,_(J.severity),1),d("span",null,_(J.message),1)],2))),128))]))]),d("div",c_,[d("div",u_,[z[11]||(z[11]=d("div",{class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 text-[11px] font-mono text-retro-subtle px-2 pb-2 border-b border-retro-border"},[d("span",null,"Requirement"),d("span",null,"Spec"),d("span",null,"Plan"),d("span",null,"Tasks"),d("span",null,"Progress")],-1)),(v(!0),y($e,null,Ye(m(k).requirements,J=>(v(),y("div",{key:J.id,class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 items-center px-2 py-2 border-b border-retro-border/60 text-xs font-mono"},[d("span",h_,_(J.id),1),d("button",{type:"button",class:"h-6 rounded border border-retro-green/40 bg-retro-green/10 flex items-center px-2 text-retro-green disabled:opacity-50 disabled:cursor-not-allowed",disabled:!J.locations.specLine,onClick:fe=>X("spec.md",J.locations.specLine,J.id)},[d("span",null,_(J.locations.specLine?`L${J.locations.specLine}`:"Defined"),1)],8,d_),d("button",{type:"button",class:Ze(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",J.inPlan?"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10":"text-retro-subtle border-retro-border bg-retro-black/50"]),disabled:!J.locations.planLine,onClick:fe=>X("plan.md",J.locations.planLine,J.id)},[d("span",null,_(J.locations.planLine?`L${J.locations.planLine}`:J.inPlan?"Linked":"Missing"),1)],10,f_),d("button",{type:"button",class:Ze(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",P(J)]),disabled:J.locations.taskLines.length===0,onClick:fe=>X("tasks.md",J.locations.taskLines[0],J.id)},[d("span",null,_(J.locations.taskLines.length>0?`L${J.locations.taskLines[0]}`:J.inTasks?"Mapped":"Missing"),1)],10,p_),d("span",m_,_(J.taskCompleted)+"/"+_(J.taskTotal),1)]))),128))])])])):H("",!0)])):m(c)?(v(),y("div",g_,[...z[12]||(z[12]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading...",-1)])])):m(u)?(v(),y("div",O_,[d("p",v_,_(m(u)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:ae}," Retry ")])):r.feature.files.length===0?(v(),y("div",b_,[...z[13]||(z[13]=[d("p",{class:"text-sm font-mono text-retro-muted"},"No spec files found",-1),d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," This feature directory has no .md files ",-1)])])):m(h)?(v(),y("div",x_,[te(xe,{modelValue:m(f),"onUpdate:modelValue":z[2]||(z[2]=J=>nt(f)?f.value=J:null),"line-to-reveal":m(g),class:"flex-1"},null,8,["modelValue","line-to-reveal"])])):(v(),y("div",{key:5,class:"spec-markdown p-6 text-sm font-mono text-retro-text max-w-4xl mx-auto",innerHTML:m(ce)},null,8,y_))])])])])}}}),w_={class:"w-full max-w-2xl rounded-xl border border-retro-border/80 bg-retro-black shadow-[0_24px_70px_rgba(0,0,0,0.55)] overflow-hidden"},S_={class:"flex items-center justify-between px-4 py-2 border-b border-retro-border/60 bg-retro-dark/70"},$_={class:"flex items-center gap-2 px-4 py-3 border-b border-retro-border/60"},C_={class:"flex items-center justify-between px-4 py-1.5 border-b border-retro-border/40 bg-retro-dark/30 text-[10px] font-mono text-retro-subtle"},Q_={class:"flex items-center gap-3"},P_={class:"inline-flex items-center gap-1"},T_={key:0},M_={key:0,class:"truncate max-w-[42%]"},A_={class:"max-h-[58vh] overflow-y-auto"},__={key:0,class:"px-4 py-3 text-xs font-mono text-retro-subtle animate-pulse"},R_={key:1,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},B_={key:2,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},Z_={key:3,class:"px-4 py-3 text-xs font-mono text-retro-red"},E_={key:4,class:"py-2 px-2 space-y-2"},D_=["onMouseenter","onClick"],L_={class:"flex items-center justify-between gap-3 text-[10px] font-mono"},X_={class:"text-retro-cyan/90"},I_={class:"text-retro-subtle truncate"},V_=["innerHTML"],z_={key:5,class:"px-4 py-3 text-xs font-mono text-retro-subtle"},N_={class:"flex items-center justify-between gap-3 px-4 py-2 border-t border-retro-border/60 bg-retro-dark/50 text-[11px] font-mono text-retro-subtle"},W_={key:0,class:"text-retro-yellow"},q_={key:0,class:"px-4 pb-3 text-xs font-mono text-retro-red flex items-center gap-2"},j_=400,Y_=Ve({__name:"FeatureSearchModal",props:{availableFeatureIds:{}},emits:["close","select"],setup(r,{emit:e}){const t=r,n=e,{renderMarkdown:s}=Lp(),i=T(""),o=T(!1),a=T(!1),l=T(null),c=T(null),u=T(null),h=T(null),f=T([]),p=T(-1),g=T(null),O=T([]);let x=null,b=0;const k=ee(()=>i.value.trim()),$=ee(()=>{const j=k.value.toLowerCase().split(/\s+/).map(W=>W.trim()).filter(W=>W.length>=2);return Array.from(new Set(j)).slice(0,8)}),P=ee(()=>l.value||c.value?"error":!k.value&&a.value?"empty-query":f.value.length>0?"results":a.value&&!o.value?"no-results":"idle");function R(j){return{featureId:j.chunk.featureId,sourcePath:j.chunk.sourcePath,headingHierarchy:j.chunk.headingHierarchy,snippet:j.chunk.content,matchType:j.matchType,score:j.score,lineStart:j.chunk.lineStart,lineEnd:j.chunk.lineEnd}}async function V(){const j=k.value;if(c.value=null,!j){a.value=!0,u.value=null,h.value=null,l.value=null,f.value=[],p.value=-1;return}const W=++b;a.value=!0,l.value=null,o.value=!0;try{const I=await $fetch("/api/specs/search",{query:{q:j,mode:"keyword",limit:20}});if(W!==b)return;u.value=I.warning??null,h.value=I.searchTime,f.value=I.results.map(R),p.value=f.value.length>0?0:-1}catch(I){if(W!==b)return;const z=I instanceof Error?I.message:"Failed to search specs";l.value=z,h.value=null,f.value=[],p.value=-1}finally{W===b&&(o.value=!1)}}We(i,()=>{l.value=null,c.value=null,x&&clearTimeout(x),x=setTimeout(()=>{V()},j_)}),We(f,()=>{O.value=[]}),We(p,async j=>{j<0||(await Ut(),O.value[j]?.scrollIntoView({block:"nearest"}))});function L(){n("close")}function ae(j){const W=f.value[j];if(W){if(!t.availableFeatureIds.includes(W.featureId)){c.value="Feature unavailable";return}n("select",W.featureId),n("close")}}function ce(j){if(f.value.length===0)return;if(p.value<0){p.value=0;return}const W=p.value+j;if(W<0){p.value=f.value.length-1;return}if(W>=f.value.length){p.value=0;return}p.value=W}function Oe(j){if(j.key==="ArrowDown"){j.preventDefault(),ce(1);return}if(j.key==="ArrowUp"){j.preventDefault(),ce(-1);return}if(j.key==="Enter"){j.preventDefault(),p.value>=0&&ae(p.value);return}j.key==="Escape"&&(j.preventDefault(),L())}function q(j){j.target===j.currentTarget&&L()}function X(j,W){if(!W){O.value[j]=null;return}if(W instanceof HTMLElement){O.value[j]=W;return}const I=W.$el;O.value[j]=I instanceof HTMLElement?I:null}function E(){V()}function U(j){const W=j.trim();if(!W)return"";const I=W.length>700?`${W.slice(0,700)}...`:W,z=s(I);if($.value.length===0)return z;const xe=$.value.map(fe=>fe.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),J=new RegExp(`(${xe.join("|")})`,"gi");return z.split(/(<[^>]+>)/g).map(fe=>fe.startsWith("<")?fe:fe.replace(J,"<mark>$1</mark>")).join("")}return Ot(()=>{Ut(()=>{g.value?.focus()})}),Ct(()=>{x&&clearTimeout(x)}),(j,W)=>(v(),be(Pr,{to:"body"},[te(xn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ht(()=>[d("div",{class:"fixed inset-0 z-50 flex items-start justify-center pt-16 px-4 bg-black/75 backdrop-blur-[1px]",onClick:q},[te(xn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 translate-y-2 scale-[0.99]","enter-to-class":"opacity-100 translate-y-0 scale-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100 translate-y-0 scale-100","leave-to-class":"opacity-0 translate-y-1 scale-[0.995]"},{default:ht(()=>[d("div",w_,[d("div",S_,[W[1]||(W[1]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-flex items-center rounded px-2 py-0.5 text-[10px] font-mono border border-retro-cyan/50 text-retro-cyan bg-retro-cyan/10"}," Command Palette "),d("span",{class:"text-[10px] font-mono text-retro-subtle"},"Global spec search")],-1)),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (Escape)",onClick:L},[te(m(Qt),{class:"h-4 w-4"})])]),d("div",$_,[te(m(bs),{class:"h-4 w-4 text-retro-cyan"}),Je(d("input",{ref_key:"inputRef",ref:g,"onUpdate:modelValue":W[0]||(W[0]=I=>nt(i)?i.value=I:null),type:"text",placeholder:"Search specs across all features...",class:"flex-1 bg-transparent text-sm font-mono text-retro-text placeholder:text-retro-subtle focus:outline-none",onKeydown:Oe},null,544),[[Lt,m(i)]]),W[2]||(W[2]=d("span",{class:"text-[10px] font-mono text-retro-subtle border border-retro-border/60 rounded px-1.5 py-0.5"},"400ms",-1))]),d("div",C_,[d("div",Q_,[d("span",P_,[te(m(Gs),{class:"h-3.5 w-3.5"}),Xe(" "+_(m(f).length)+" results ",1)]),m(h)!==null?(v(),y("span",T_,_(m(h))+"ms",1)):H("",!0)]),m(k)?(v(),y("span",M_,"“"+_(m(k))+"”",1)):H("",!0)]),d("div",A_,[m(o)?(v(),y("div",__," Searching... ")):m(P)==="empty-query"?(v(),y("div",R_," Enter a search term to search across all feature specs. ")):m(P)==="no-results"?(v(),y("div",B_," No matching features found. ")):m(P)==="error"?(v(),y("div",Z_,[d("p",null,_(m(c)||m(l)),1),m(l)?(v(),y("button",{key:0,type:"button",class:"mt-2 px-2 py-1 rounded border border-retro-border text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:E}," Retry ")):H("",!0)])):m(f).length>0?(v(),y("ul",E_,[(v(!0),y($e,null,Ye(m(f),(I,z)=>(v(),y("li",{key:`${I.featureId}:${I.sourcePath}:${z}`},[d("button",{type:"button",ref_for:!0,ref:xe=>X(z,xe),class:Ze(["w-full text-left px-4 py-3 min-h-[132px] rounded-lg border border-retro-border/40 border-l-2 transition-colors",z===m(p)?"border-retro-cyan bg-retro-panel/95 text-retro-text shadow-[0_0_0_1px_rgba(34,211,238,0.18)]":"text-retro-muted hover:text-retro-text hover:bg-retro-panel/90"]),onMouseenter:xe=>p.value=z,onClick:xe=>ae(z)},[d("div",L_,[d("span",X_,_(I.featureId),1),d("span",I_,_(I.sourcePath)+":"+_(I.lineStart)+"-"+_(I.lineEnd),1)]),d("div",{class:"snippet-markdown mt-2 max-h-20 overflow-hidden text-xs text-retro-text",innerHTML:U(I.snippet)},null,8,V_),W[3]||(W[3]=d("div",{class:"mt-2 text-[10px] font-mono text-retro-subtle"}," Select feature ",-1))],42,D_)]))),128))])):(v(),y("div",z_," Start typing to search. "))]),d("div",N_,[W[4]||(W[4]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"↑↓ move"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Enter select"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Esc close")],-1)),m(u)?(v(),y("span",W_,_(m(u)),1)):H("",!0)]),m(c)?(v(),y("div",q_,[te(m(In),{class:"h-3.5 w-3.5"}),d("span",null,_(m(c)),1)])):H("",!0)])]),_:1})])]),_:1})]))}}),F_=ci(Y_,[["__scopeId","data-v-5199b408"]]);function U_(r){return/^\/speckit\.(clarify|plan|tasks|implement)(\s|$)/.test(r)}function G_(r=Date.now,e=Math.random){return`req-${r()}-${e().toString(36).slice(2,8)}`}function Mp(r=Date.now){return`session-${r()}`}function $a(r,e=!1){const t={};return(!e||r?.hasWorktree)&&r?.worktreePath&&(t.cwd=r.worktreePath,t.worktreeBranch=r.worktreeBranch),r?.featureId&&(t.featureId=r.featureId),Object.keys(t).length>0?t:void 0}function Ap(r){if(r.file_path)return String(r.file_path);if(r.path)return String(r.path);if(r.command)return String(r.command).slice(0,50);if(r.pattern)return String(r.pattern);for(const e of Object.values(r))if(typeof e=="string"&&e.length<100)return e;return""}function _p(r,e="Permission"){const t=r||"",n=t.match(/write to (.+?)(?:[\s,?]|$)/i),s=t.match(/read (.+?)(?:[\s,?]|$)/i),i=t.match(/run (.+?)(?:[?,]|$)/i);return n?.[1]?{tool:"Write",description:t,filePath:n[1].trim()}:s?.[1]?{tool:"Read",description:t,filePath:s[1].trim()}:i?.[1]?{tool:"Bash",description:t,command:i[1].trim()}:{tool:e,description:t}}const gt=new Map;let ca=0;const Zn=new Map,ua=new Set,H_=3e4,o1=18e4,K_=Math.round(o1/1e3);function J_(r){switch(r){case 1e3:return"Normal closure";case 1001:return"Endpoint is going away (server shutdown or page navigation)";case 1002:return"Protocol error";case 1003:return"Unsupported data";case 1005:return"No status code received from peer (close frame had no code)";case 1006:return"Abnormal closure (connection dropped without close frame)";case 1007:return"Invalid payload data";case 1008:return"Policy violation";case 1009:return"Message too big";case 1010:return"Missing required extension";case 1011:return"Internal server error";case 1012:return"Service restart";case 1013:return"Try again later (temporary overload)";case 1015:return"TLS handshake failure";default:return r>=4e3&&r<=4999?"Application-specific close code":"Unknown close code"}}function eR(r,e){const t=[];return r.reason?t.push(r.reason):t.push(J_(r.code)),e?.lastServerError?t.push(`Last server error: ${e.lastServerError}`):e?.lastSocketError&&t.push(`Last socket error: ${e.lastSocketError}`),t.push(`wasClean: ${r.wasClean?"yes":"no"}`),t.join(" | ")}function Cl(){const r=vr(),e=bo();ca++;function t(){return typeof document>"u"||typeof document.hasFocus!="function"?!1:document.visibilityState==="visible"&&document.hasFocus()}function n(S){const M=r.conversations.find(B=>B.id===S)?.title?.trim()||"Chat";return new Notification("Spec Cat",{body:`${M} response completed.`,tag:`chat-complete-${S}`})}async function s(S){if(!(typeof window>"u"||typeof Notification>"u")&&!t()){if(Notification.permission==="granted"){n(S);return}if(Notification.permission==="default")try{await Notification.requestPermission()==="granted"&&n(S)}catch(w){console.warn("[useChatStream] Failed to request browser notification permission:",w)}}}function i(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function o(S){S.healthCheckInterval&&(clearInterval(S.healthCheckInterval),S.healthCheckInterval=null)}function a(S){o(S),S.lastMessageTime=Date.now(),S.healthCheckInterval=_u(()=>{const w=S.conversationId;if(S.ws.readyState!==WebSocket.OPEN){console.warn(`[useChatStream] Health check: WebSocket not open for ${w}`),o(S),r.isConversationStreaming(w)&&(h(S.currentMessageId,w,"error"),r.updateMessage(S.currentMessageId,{status:"error"},w),r.setSessionError("Connection lost during streaming",w),r.endSession(w),r.endConversationStreaming(w)),gt.delete(w);return}if(r.isConversationStreaming(w)){const M=Date.now()-S.lastMessageTime;M>o1&&(console.warn(`[useChatStream] Health check: streaming timeout for ${w} (${Math.round(M/1e3)}s)`),o(S),h(S.currentMessageId,w,"error"),r.updateMessage(S.currentMessageId,{status:"error"},w),r.setSessionError(`Streaming timed out — no response from server for ${K_} seconds`,w),r.endSession(w),r.endConversationStreaming(w),S.ws.close(),gt.delete(w))}},H_)}function l(S,w){return r.conversations.find(B=>B.id===S)?.messages.find(B=>B.id===w)?.status}function c(S,w=!0){const M=gt.get(S);M&&(o(M),w&&M.ws.readyState===WebSocket.OPEN&&M.ws.close(),gt.delete(S))}function u(S,w,M){!M||!S.currentTextBlockId||(r.updateBlockWithSave(S.currentMessageId,S.currentTextBlockId,B=>{B.type==="text"&&(B.text+=M)},w,{syncContent:!1}),r.appendToMessage(S.currentMessageId,M,w))}function h(S,w,M){const K=r.conversations.find(oe=>oe.id===w)?.messages.find(oe=>oe.id===S);if(K?.contentBlocks)for(const oe of K.contentBlocks)oe.type==="tool_use"&&(oe.status==="running"||oe.status==="pending")&&r.updateBlockById(S,oe.id,ye=>{ye.type==="tool_use"&&(ye.status=M)},w)}async function f(S){try{(await p(S)).send(JSON.stringify({type:"reset_context"})),r.clearProviderSession(S),console.log("[useChatStream] Context reset requested for conversation:",S)}catch(w){throw console.error("[useChatStream] Failed to reset context:",w),w}}function p(S){return new Promise((w,M)=>{let B=!1;const K=Ue=>{B||(B=!0,w(Ue))},oe=Ue=>{B||(B=!0,M(Ue))},ye=gt.get(S);if(ye&&ye.ws.readyState===WebSocket.OPEN){K(ye.ws);return}ye&&(ye.ws.close(),gt.delete(S));const Ne=i(),Ce=new WebSocket(Ne),He={ws:Ce,currentMessageId:"",conversationId:S,activeTools:new Map,currentTextBlockId:null,currentThinkingBlockId:null,healthCheckInterval:null,lastMessageTime:Date.now(),lastServerError:null,lastSocketError:null,isReplaying:!1,replayBuffer:[]};gt.set(S,He),Ce.onopen=()=>{K(Ce)},Ce.onerror=Ue=>{console.error(`[useChatStream] WebSocket error for conversation ${S}:`,Ue);const pe=gt.get(S);pe&&pe.ws!==Ce||(pe&&(pe.lastSocketError="Browser reported a WebSocket transport error (network/proxy/server)"),r.isConversationStreaming(S)&&(pe?.currentMessageId&&(h(pe.currentMessageId,S,"error"),r.updateMessage(pe.currentMessageId,{status:"error"},S)),r.setSessionError("Connection error during streaming",S),r.endSession(S),r.endConversationStreaming(S)),gt.delete(S),oe(new Error("WebSocket connection failed. Server may be unavailable.")))},Ce.onclose=Ue=>{const pe=gt.get(S);if(!(pe&&pe.ws!==Ce)){if(pe&&o(pe),gt.delete(S),Zn.delete(S),!B){oe(new Error(`WebSocket closed before connection was established (code: ${Ue.code})`));return}if(r.isConversationStreaming(S)){pe?.currentMessageId&&(h(pe.currentMessageId,S,"error"),r.updateMessage(pe.currentMessageId,{status:"error"},S));const Pe=eR(Ue,pe);r.setSessionError(`Connection closed: ${Pe} (code: ${Ue.code})`,S),r.endSession(S),r.endConversationStreaming(S)}}},Ce.onmessage=Ue=>{const pe=gt.get(S);pe&&pe.ws!==Ce||b(Ue.data,S)}})}async function g(S,w=3){for(let M=0;M<w;M++){const B=r.conversations.find(K=>K.id===S);if(B)return B;M<w-1&&await new Promise(K=>setTimeout(K,100))}console.error("[useChatStream] Conversation not found after retries:",S)}function O(S,w){return`${S}:${w}`}function x(S,w){const M=r.conversations.find(K=>K.id===S);if(!M)return null;const B=M.messages.findIndex(K=>K.id===w);if(B<=0)return null;for(let K=B-1;K>=0;K--){const oe=M.messages[K];if(oe.role==="user"&&oe.content.trim().length>0)return oe.content}return null}async function b(S,w){const M=gt.get(w);if(M){M.lastMessageTime=Date.now();try{r.pushDebugEvent({direction:"in",channel:"ws",eventType:"ws.raw",payload:S},w);const B=JSON.parse(S);if(r.pushDebugEvent({direction:"in",channel:"ws",eventType:B.type,payload:B},w),M.isReplaying&&((B.type==="ui_event"||B.type==="done"||B.type==="error")&&M.replayBuffer.push(B),B.type!=="replay_end"))return;if(B.type==="error"){console.error(`[useChatStream] Server error for ${w}:`,B.error);const K=B.error||"Unknown server error";M.lastServerError=K;const oe=/codex cannot access session files|failed to clean up stale arg0 temp dirs: Permission denied|failed to initialize rollout recorder: Permission denied|failed to create session: Permission denied|\/\.codex\/.*permission denied/i.test(K);if(/state db missing rollout path for thread/i.test(K)&&!oe){const Ne=O(w,M.currentMessageId);if(!ua.has(Ne)){const Ce=x(w,M.currentMessageId);if(Ce){ua.add(Ne),r.setProviderSessionId("",w),ce(M.currentMessageId,`
40
-
41
- > **Session Reset**: Codex resume state was corrupted. Retrying once with a fresh session...
42
-
43
- `,w);try{const He=r.conversations.find(pe=>pe.id===w),Ue=$a(He);await Oe(Ce,M.currentMessageId,w,Ue);return}catch(He){console.error(`[useChatStream] Rollout-path recovery retry failed for ${w}:`,He)}}}}o(M),h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"error"},w),/state db missing rollout path for thread/i.test(K)&&r.setProviderSessionId("",w),ua.delete(O(w,M.currentMessageId)),r.setSessionError(K,w),r.endSession(w),r.endConversationStreaming(w),E(w),r.saveConversation(w,!0),c(w);return}if(B.type==="done"){o(M);const K=l(w,M.currentMessageId);if(ua.delete(O(w,M.currentMessageId)),B.denied){h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"stopped"},w),r.endSession(w),r.endConversationStreaming(w),E(w),r.clearPendingPermission(w),M.activeTools.clear(),r.saveConversation(w,!0);return}if(K==="error"||K==="stopped"){h(M.currentMessageId,w,"error"),r.endSession(w),r.endConversationStreaming(w),E(w),r.clearPendingPermission(w),M.activeTools.clear(),r.saveConversation(w,!0);return}h(M.currentMessageId,w,"complete"),r.completeMessageWithSave(M.currentMessageId,w),r.endSession(w),r.endConversationStreaming(w),s(w);const oe=await g(w),ye=oe?.hasWorktree&&oe.worktreePath?$fetch("/api/chat/worktree-commit",{method:"POST",body:{worktreePath:oe.worktreePath,conversationId:w,previousBranch:oe.worktreeBranch}}).then(Ce=>oe.previewBranch&&oe.worktreePath?$fetch("/api/chat/preview-sync",{method:"POST",body:{previewBranch:oe.previewBranch,worktreePath:oe.worktreePath}}).then(He=>{if(!He.success)throw new Error(He.error||"Unknown preview sync failure");return Ce}):Ce).then(async Ce=>{if(Ce?.success&&Ce.currentBranch!==oe.worktreeBranch){const He=oe.worktreeBranch||"unknown";r.updateWorktreeBranch(w,Ce.currentBranch);const Ue=await r.syncConversationFeatureFromBranch(w),pe=Ce.deletedPreviousBranch?` and deleted \`${He}\``:"",Pe=Ue?` and linked to feature \`${Ue}\``:"";ce(M.currentMessageId,`
44
-
45
- > **Branch changed**: AI switched from \`${He}\` to \`${Ce.currentBranch}\`${pe}${Pe}
46
-
47
- `,w)}else Ce?.success&&oe.worktreeBranch&&r.updateWorktreeBranch(w,oe.worktreeBranch);return r.saveConversation(w,!1),Ce}).catch(Ce=>{console.warn("[useChatStream] Auto-commit/preview-sync failed:",Ce)}):Promise.resolve(),Ne=Zn.get(w);if(Ne&&Ne.queue.length>0){const Ce=Ne.queue.shift(),He=Ne.featureId;ye.then(()=>{setTimeout(()=>{U(w,He,Ce)},1500)}),Ne.queue.length===0&&Zn.delete(w)}r.clearPendingPermission(w),r.saveConversation(w,!0),M.activeTools.clear();return}if(B.type==="pong")return;if(B.type==="session_reset"){console.warn(`[useChatStream] Session reset for ${w}:`,B.reason),r.setProviderSessionId("",w),ce(M.currentMessageId,`
48
-
49
- > **Session Reset**: Previous session could not be resumed. Retrying with a fresh session...
50
-
51
- `,w);return}if(B.type==="worktree_recovered"){console.log(`[useChatStream] Worktree recovered for ${w}`),ce(M.currentMessageId,`
52
-
53
- > **Worktree recovered**: The work directory was restored after a system restart.
54
-
55
- `,w);return}if(B.type==="context_reset"){console.log(`[useChatStream] Context reset confirmed for ${w}`);return}if(B.type==="aborted"){console.log(`[useChatStream] Abort confirmed for ${w}`);return}if(B.type==="subscribed"){console.log(`[useChatStream] Subscribed to ${w}`,B.jobId?`(job: ${B.jobId}, status: ${B.jobStatus})`:"(no active job)"),B.jobId||(r.endSession(w),r.endConversationStreaming(w));return}if(B.type==="replay_start"){console.log(`[useChatStream] Replay start for ${w}: ${B.eventCount} events from job ${B.jobId}`),M.isReplaying=!0,M.replayBuffer=[];return}if(B.type==="replay_end"){console.log(`[useChatStream] Replay end for ${w}: nextCursor=${B.nextCursor}`),V(M,w),M.isReplaying=!1,M.replayBuffer=[];return}if(B.type==="notification"){P(B);return}if(B.type==="permission_request"){o(M),r.endConversationStreaming(w);const K=_p(B.description||"",B.tool||"Permission");r.setPendingPermission(K,w);let oe=`
56
-
57
- **Permission Required**: ${K.tool}`;K.filePath&&(oe+=` - ${K.filePath}`),ce(M.currentMessageId,oe+`
58
- `,w);return}if(B.type==="permission_prompt"&&B.text){o(M),r.endConversationStreaming(w);const K=_p(B.text,"Permission");r.setPendingPermission(K,w);const oe=`
59
-
60
- **${K.tool}**: ${K.filePath||K.command||K.description}
61
- `;ce(M.currentMessageId,oe,w);return}B.type==="ui_event"&&B.event?R(B.event,w):B.type==="provider_json"&&B.data}catch(B){console.error(`[useChatStream] Failed to parse WebSocket message for ${w}:`,B,"Raw data:",S?.slice(0,200)),h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"error"},w),r.setSessionError(`Failed to parse server response: ${B instanceof Error?B.message:"Invalid JSON"}`,w),r.endSession(w),r.endConversationStreaming(w),E(w),r.saveConversation(w,!0),c(w)}}}let k=null;const $=500;function P(S){const w=S.notificationEvent,M=S.source;console.log(`[useChatStream] Global notification: ${w}`,{jobId:S.jobId,conversationId:S.conversationId,source:M,status:S.status}),(w==="job_created"&&M!=="user"||w==="job_completed"||w==="job_persisted")&&(k&&clearTimeout(k),k=setTimeout(()=>{k=null,r.refreshServerConversations()},$))}function R(S,w){const M=gt.get(w);if(M)switch(r.pushDebugEvent({direction:"in",channel:"ui",eventType:S.type,payload:S},w),S.sessionId&&r.setProviderSessionId(S.sessionId,w),S.type){case"session_init":{ae(M.currentMessageId,w);const B={id:jt(),type:"session_init",model:S.model,tools:S.tools,permissionMode:S.permissionMode,cwd:S.cwd};r.appendContentBlockWithSave(M.currentMessageId,B,w);break}case"block_start":{ae(M.currentMessageId,w);const B=S.blockId||jt();if(S.blockType==="text"){const K={id:B,type:"text",text:S.text||""};r.appendContentBlockWithSave(M.currentMessageId,K,w),M.currentTextBlockId=B}else if(S.blockType==="thinking"){const K={id:B,type:"thinking",thinking:S.thinking||""};r.appendContentBlockWithSave(M.currentMessageId,K,w),M.currentThinkingBlockId=B}else if(S.blockType==="tool_use"&&S.toolUseId&&S.name){const K={id:B,type:"tool_use",toolUseId:S.toolUseId,name:S.name,input:{},inputSummary:"",status:"running"};r.appendContentBlockWithSave(M.currentMessageId,K,w),M.activeTools.set(S.index??0,{blockId:B,toolUseId:S.toolUseId,name:S.name,inputJson:""})}break}case"block_delta":{if(S.text&&M.currentTextBlockId&&u(M,w,S.text),S.thinking&&M.currentThinkingBlockId&&r.updateBlockWithSave(M.currentMessageId,M.currentThinkingBlockId,B=>{B.type==="thinking"&&(B.thinking+=S.thinking)},w,{syncContent:!1}),S.partialJson){let B;if(S.index!==void 0&&(B=M.activeTools.get(S.index)),!B&&S.blockId){for(const[,K]of M.activeTools)if(K.blockId===S.blockId){B=K;break}}B&&(B.inputJson+=S.partialJson)}break}case"block_end":{let B;if(S.index!==void 0&&(B=M.activeTools.get(S.index)),!B&&S.blockId){for(const[,K]of M.activeTools)if(K.blockId===S.blockId){B=K;break}}if(B||(M.currentTextBlockId&&(M.currentTextBlockId=null),M.currentThinkingBlockId&&(M.currentThinkingBlockId=null)),B){let K={};try{K=JSON.parse(B.inputJson)}catch{}if(B.name==="ExitPlanMode"){const oe={allowedPrompts:K.allowedPrompts};r.setPendingPlanApproval(oe,w)}r.updateBlockWithSave(M.currentMessageId,B.blockId,oe=>{if(oe.type==="tool_use"){const ye=oe;ye.input=K,ye.inputSummary=Ap(K),ye.status="pending"}},w)}break}case"tool_result":{ae(M.currentMessageId,w);const B=r.findToolUseBlock(M.currentMessageId,S.toolUseId,w);B&&B.type==="tool_use"&&r.updateBlockById(M.currentMessageId,B.id,oe=>{oe.type==="tool_use"&&(oe.status=S.isError?"error":"complete")},w);const K={id:jt(),type:"tool_result",toolUseId:S.toolUseId,content:S.content||"",isError:!!S.isError};r.appendContentBlockWithSave(M.currentMessageId,K,w);break}case"permission_request":{o(M),r.endConversationStreaming(w);const B={tool:S.tool,description:S.description,input:S.input,tools:S.tools};r.setPendingPermission(B,w);let K=`
62
-
63
- **Permission Required**: ${B.tool}`;ce(M.currentMessageId,K+`
64
- `,w);break}case"turn_result":{if(S.subtype!=="success"&&(r.updateMessage(M.currentMessageId,{status:"error"},w),E(w),S.subtype==="max_turns"?r.setSessionError("Maximum conversation turns reached. Please start a new conversation.",w):r.setSessionError("Provider reported an execution error.",w)),S.subtype==="success"&&S.usage){ae(M.currentMessageId,w);const B={id:jt(),type:"result_summary",totalCostUsd:S.totalCostUsd??0,durationMs:S.durationMs??0,numTurns:S.numTurns??0,usage:S.usage};r.appendContentBlockWithSave(M.currentMessageId,B,w)}break}case"error":{r.updateMessage(M.currentMessageId,{status:"error"},w),r.setSessionError(S.error,w);break}}}function V(S,w){const M=S.replayBuffer;if(M.length===0)return;const B=[];let K="",oe=null,ye=null;const Ne=new Map;let Ce="streaming",He=!1;for(const Ue of M){if(Ue.type==="done"){Ue.denied?(L(B,"error"),Ce="stopped"):Ce==="error"||Ce==="stopped"?L(B,"error"):(L(B,"complete"),Ce="complete"),He=!0;continue}if(Ue.type==="error"){L(B,"error"),Ce="error";continue}if(Ue.type!=="ui_event"||!Ue.event)continue;const pe=Ue.event;switch(pe.sessionId&&r.setProviderSessionId(pe.sessionId,w),pe.type){case"session_init":{const Pe={id:jt(),type:"session_init",model:pe.model,tools:pe.tools,permissionMode:pe.permissionMode,cwd:pe.cwd};B.push(Pe);break}case"block_start":{const Pe=pe.blockId||jt();if(pe.blockType==="text"){const le={id:Pe,type:"text",text:pe.text||""};B.push(le),oe=Pe,pe.text&&(K+=pe.text)}else if(pe.blockType==="thinking"){const le={id:Pe,type:"thinking",thinking:pe.thinking||""};B.push(le),ye=Pe}else if(pe.blockType==="tool_use"&&pe.toolUseId&&pe.name){const le={id:Pe,type:"tool_use",toolUseId:pe.toolUseId,name:pe.name,input:{},inputSummary:"",status:"running"};B.push(le),Ne.set(pe.index??0,{blockId:Pe,toolUseId:pe.toolUseId,name:pe.name,inputJson:""})}break}case"block_delta":{if(pe.text&&oe){const Pe=B.find(le=>le.id===oe);Pe&&Pe.type==="text"&&(Pe.text+=pe.text,K+=pe.text)}if(pe.thinking&&ye){const Pe=B.find(le=>le.id===ye);Pe&&Pe.type==="thinking"&&(Pe.thinking+=pe.thinking)}if(pe.partialJson){let Pe;if(pe.index!==void 0&&(Pe=Ne.get(pe.index)),!Pe&&pe.blockId){for(const[,le]of Ne)if(le.blockId===pe.blockId){Pe=le;break}}Pe&&(Pe.inputJson+=pe.partialJson)}break}case"block_end":{let Pe;if(pe.index!==void 0&&(Pe=Ne.get(pe.index)),!Pe&&pe.blockId){for(const[,le]of Ne)if(le.blockId===pe.blockId){Pe=le;break}}if(Pe||(oe&&(oe=null),ye&&(ye=null)),Pe){let le={};try{le=JSON.parse(Pe.inputJson)}catch{}const he=B.find(Y=>Y.id===Pe.blockId);if(he&&he.type==="tool_use"){const Y=he;Y.input=le,Y.inputSummary=Ap(le),Y.status="pending"}}break}case"tool_result":{const Pe=B.find(he=>he.type==="tool_use"&&he.toolUseId===pe.toolUseId);Pe&&Pe.type==="tool_use"&&(Pe.status=pe.isError?"error":"complete");const le={id:jt(),type:"tool_result",toolUseId:pe.toolUseId,content:pe.content||"",isError:!!pe.isError};B.push(le);break}case"turn_result":{if(pe.subtype!=="success"&&(Ce="error"),pe.subtype==="success"&&pe.usage){const Pe={id:jt(),type:"result_summary",totalCostUsd:pe.totalCostUsd??0,durationMs:pe.durationMs??0,numTurns:pe.numTurns??0,usage:pe.usage};B.push(Pe)}break}case"error":{Ce="error";break}}}r.batchSetMessageBlocks(S.currentMessageId,B,K,Ce,w),S.currentTextBlockId=oe,S.currentThinkingBlockId=ye,S.activeTools=Ne,He&&(o(S),r.endSession(w),r.endConversationStreaming(w),s(w)),console.log(`[useChatStream] Replay batch processed: ${M.length} events → ${B.length} blocks, status=${Ce}`)}function L(S,w){for(const M of S)if(M.type==="tool_use"){const B=M;(B.status==="running"||B.status==="pending")&&(B.status=w)}}function ae(S,w){r.initContentBlocks(S,w)}function ce(S,w,M){ae(S,M);const B={id:jt(),type:"text",text:w};r.appendContentBlockWithSave(S,B,M)}async function Oe(S,w,M,B){if(typeof window>"u")return;const K=G_();try{const oe=await p(M),ye=gt.get(M);ye&&(ye.currentMessageId=w,ye.activeTools.clear(),ye.currentTextBlockId=null,ye.currentThinkingBlockId=null,a(ye)),U_(S)&&r.setProviderSessionId("",M);const Ce=r.getProviderSessionId(M),He=r.conversations.find(le=>le.id===M),Ue=He?.providerId||e.providerSelection.providerId||Ip,pe=He?.providerModelKey||e.providerSelection.modelKey||Xp;He&&(!He.providerId||!He.providerModelKey)&&(r.setConversationProviderSelection(M,Ue,pe),r.saveConversation(M,!0));const Pe={type:"chat",message:S,attachments:B?.attachments,requestId:K,sessionId:Ce||void 0,permissionMode:r.permissionMode,conversationId:M,cwd:B?.cwd,worktreeBranch:B?.worktreeBranch,featureId:B?.featureId,providerId:Ue,providerModelKey:pe};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"chat",payload:Pe},M),oe.send(JSON.stringify(Pe))}catch(oe){r.updateMessage(w,{status:"error"},M),r.setSessionError(oe.message||"Connection failed",M),r.endSession(M),r.endConversationStreaming(M),r.saveConversation(M,!0),c(M)}}function q(S,w){const M=w??r.activeConversationId;if(!M)return;const B=gt.get(M);if(!B||B.ws.readyState!==WebSocket.OPEN)return;const K={type:"permission_response",allow:S};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"permission_response",payload:K},M),B.ws.send(JSON.stringify(K)),S&&(r.startConversationStreaming(M),a(B));const oe=S?"Allowed":"Denied";ce(B.currentMessageId,`${oe}
65
- `,M),r.clearPendingPermission(M)}function X(S,w,M){Zn.set(w,{featureId:S,queue:[...M]})}function E(S){S?Zn.delete(S):Zn.clear()}async function U(S,w,M){r.activeConversationId!==S&&r.selectConversation(S);const B=r.conversations.find(Ne=>Ne.id===S);let K;if(M.startsWith("skill:")){const Ne=M.replace("skill:","");try{K=(await $fetch(`/api/skills/${Ne}/prompt`,{method:"POST",body:{featureId:w,cwd:B?.worktreePath}})).prompt}catch(Ce){console.error(`[useChatStream] Failed to render skill prompt for ${Ne}:`,Ce);return}}else K=`/speckit.${M} ${w}`;r.addUserMessage(K,S),r.saveConversation(S,!0);const oe=r.addAssistantMessage(S);r.startSession(Mp(),S),r.startConversationStreaming(S);const ye=$a(B);await Oe(K,oe.id,S,ye)}async function j(S,w,M=0){if(!(typeof window>"u"))try{const B=await p(S),K=gt.get(S);K&&(K.currentMessageId=w,K.activeTools.clear(),K.currentTextBlockId=null,K.currentThinkingBlockId=null,a(K)),r.startConversationStreaming(S);const oe={type:"subscribe",conversationId:S,cursor:M};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"subscribe",payload:oe},S),B.send(JSON.stringify(oe))}catch(B){console.error(`[useChatStream] Failed to subscribe to ${S}:`,B),r.setSessionError(B.message||"Subscribe failed",S)}}function W(S){const w=S??r.activeConversationId;if(!w)return;const M=gt.get(w);if(M){if(M.ws.readyState===WebSocket.OPEN){const B={type:"abort"};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"abort",payload:B},w),M.ws.send(JSON.stringify(B)),M.ws.close()}M.currentMessageId&&(h(M.currentMessageId,w,"error"),r.updateMessage(M.currentMessageId,{status:"stopped"},w),r.endSession(w),r.saveConversation(w,!0)),gt.delete(w)}r.endConversationStreaming(w),r.clearPendingPermission(w),E(w)}function I(S){const w=gt.get(S);w&&(o(w),w.ws.close(),gt.delete(S)),Zn.delete(S)}function z(){for(const[S,w]of gt)o(w),w.ws.close(),gt.delete(S);Zn.clear()}async function xe(S){const w=S??r.activeConversationId;if(!w)return;r.clearPendingPlanApproval(w),r.setPermissionMode("auto");const M="Approved. Proceed with the implementation.";r.addUserMessage(M,w),r.saveConversation(w,!0);const B=r.addAssistantMessage(w);r.startSession(Mp(),w),r.startConversationStreaming(w);const K=r.conversations.find(ye=>ye.id===w),oe=$a(K,!0);await Oe(M,B.id,w,oe)}function J(S){const w=S??r.activeConversationId;w&&r.clearPendingPlanApproval(w)}async function fe(S){if(typeof window>"u")return!1;try{const w=await $fetch("/api/jobs",{params:{conversationId:S}}),B=w.find(ye=>ye.status==="running"||ye.status==="waiting_permission"||ye.status==="queued")||[...w].sort((ye,Ne)=>Ne.eventCount-ye.eventCount).find(ye=>ye.eventCount>0),K=r.conversations.find(ye=>ye.id===S);if(!K)return!1;const oe=[...K.messages].reverse().find(ye=>ye.role==="assistant");return B?!oe||oe.status!=="streaming"?!1:(console.log("[useChatStream] Resuming streaming for",S,"job:",B.id,"status:",B.status,"events:",B.eventCount),r.resetMessageForReplay(oe.id,S),r.startSession(`resume-${Date.now()}`,S),await j(S,oe.id,0),!0):(oe&&oe.status==="streaming"&&(r.updateMessage(oe.id,{status:"error"},S),r.setSessionError("Streaming was interrupted (server job no longer active)",S)),!1)}catch(w){return console.error("[useChatStream] Failed to resume streaming:",w),!1}}return Ct(()=>{ca--,ca<=0&&(ca=0,z())}),{sendMessage:Oe,sendPermissionResponse:q,subscribe:j,tryResumeStreaming:fe,approvePlan:xe,rejectPlan:J,abort:W,disconnect:z,disconnectConversation:I,enableCascade:X,disableCascade:E,resetContext:f}}const tR={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},rR={class:"px-4 py-3 border-b border-retro-border flex items-center justify-between"},nR=["disabled"],sR={class:"px-4 py-4 space-y-3"},iR={class:"relative"},oR=["disabled"],aR={key:0,value:""},lR=["value"],cR={key:0,class:"text-xs font-mono text-retro-red"},uR={key:1,class:"text-xs font-mono text-retro-muted"},hR={class:"px-4 py-3 border-t border-retro-border flex items-center gap-2 justify-end"},dR=["disabled"],fR=["disabled"],ku=Ve({__name:"NewConversationModal",props:{show:{type:Boolean},creating:{type:Boolean}},emits:["close","create"],setup(r,{emit:e}){const t=Su(),n=r,s=e,i=T([]),o=T(""),a=T(!1),l=T(""),c=ee(()=>!a.value&&!n.creating&&o.value.length>0&&i.value.length>0);async function u(){a.value=!0,l.value="";try{await t.initialize();const f=await $fetch("/api/git/branches",{query:{excludeSc:!0,workingDirectory:t.workingDirectory}}),p=f.branches.filter(O=>!O.isRemote).map(O=>O.name);if(i.value=p,!p.length){o.value="",l.value="No local branches available for chat creation.";return}const g=(f.current&&p.includes(f.current)?f.current:"")||(p.includes("main")?"main":"")||(p.includes("master")?"master":"")||p[0];o.value=g}catch(f){i.value=[],o.value="",l.value=f instanceof Error?f.message:"Failed to load branches"}finally{a.value=!1}}We(()=>n.show,f=>{f&&u()});function h(){c.value&&s("create",o.value)}return(f,p)=>(v(),be(Pr,{to:"body"},[te(xn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ht(()=>[r.show?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:p[3]||(p[3]=kr(g=>s("close"),["self"]))},[d("div",tR,[d("div",rR,[p[4]||(p[4]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"New Conversation",-1)),d("button",{type:"button",class:"p-1 text-retro-muted hover:text-retro-text transition-colors",disabled:r.creating,onClick:p[0]||(p[0]=g=>s("close"))},[te(m(Qt),{class:"w-4 h-4"})],8,nR)]),d("div",sR,[p[5]||(p[5]=d("label",{class:"block text-xs font-mono text-retro-muted"},"Base Branch",-1)),d("div",iR,[Je(d("select",{"onUpdate:modelValue":p[1]||(p[1]=g=>o.value=g),disabled:a.value||r.creating||i.value.length===0,class:"w-full appearance-none bg-retro-black border border-retro-border rounded px-2 py-1.5 pr-7 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan disabled:opacity-40"},[a.value?(v(),y("option",aR,"Loading branches...")):H("",!0),(v(!0),y($e,null,Ye(i.value,g=>(v(),y("option",{key:g,value:g},_(g),9,lR))),128))],8,oR),[[Cs,o.value]]),te(m(Qu),{class:"absolute right-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})]),l.value?(v(),y("p",cR,_(l.value),1)):(v(),y("p",uR," The conversation worktree will be created from the selected branch. "))]),d("div",hR,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",disabled:r.creating,onClick:p[2]||(p[2]=g=>s("close"))}," Cancel ",8,dR),d("button",{type:"button",disabled:!c.value,class:"px-3 py-1.5 text-xs font-mono rounded border bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},_(r.creating?"Creating...":"Create"),9,fR)])])])):H("",!0)]),_:1})]))}}),pR={class:"h-full flex flex-col bg-retro-black"},mR={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border"},gR={class:"flex items-center gap-1"},OR={class:"flex-shrink-0 px-3 pt-3"},vR={class:"relative"},bR={class:"flex-1 overflow-y-auto p-3"},xR={class:"space-y-2"},yR={key:0,class:"flex items-center justify-center py-12"},kR={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},wR={key:2,class:"flex flex-col items-center justify-center py-12 text-center"},SR=Ve({__name:"FeaturesPanel",setup(r){const e=vr(),t=ul(),{sendMessage:n,enableCascade:s}=Cl(),i=vo(),o=T("features"),a=T(null),l=T(null),c=T([]),u=T([]),h=T(!1),f=T({}),p=T(!1),g=T(null),O=T(!1),x=T(!1),b=T(!1),k=T(null),$=T(""),P=T("");let R=null;We($,le=>{R&&clearTimeout(R),R=setTimeout(()=>{P.value=le},300)});const V=ee(()=>{const le=P.value.trim().toLowerCase();return le?c.value.filter(he=>he.name.toLowerCase().includes(le)||he.id.toLowerCase().includes(le)):c.value}),L=T({}),ae=ee(()=>{const le=e.activeConversation;if(!le)return null;if(le.featureId)return le.featureId;const he=le.worktreeBranch?.trim();return he&&c.value.some(Y=>Y.id===he)?he:null}),ce=ee(()=>ae.value||a.value);We(()=>e.activeConversationId,()=>{a.value=null;const le=ae.value;t.setSelectedFeatureId(le),le&&Ut(()=>{const he=L.value[le];he&&he.scrollIntoView({behavior:"auto",block:"nearest"})})}),We(a,le=>{le&&Ut(()=>{const he=L.value[le];he&&he.scrollIntoView({behavior:"auto",block:"nearest"})})});async function Oe(){h.value=!0;try{const le=await $fetch("/api/specs/features");c.value=le.features,q(le.features)}catch{i.error("Failed to load features"),c.value=[],f.value={}}finally{h.value=!1}}async function q(le){if(le.length===0){f.value={};return}const he=await Promise.allSettled(le.map(async Ae=>{const Ie=await $fetch(`/api/specs/traceability/${Ae.id}`),ze=Ie.alerts.filter(Ht=>Ht.severity==="critical").length,_t=Ie.alerts.filter(Ht=>Ht.severity==="major").length;return{featureId:Ae.id,critical:ze,major:_t}})),Y={};for(const Ae of he)Ae.status==="fulfilled"&&(Y[Ae.value.featureId]={critical:Ae.value.critical,major:Ae.value.major});f.value=Y}async function X(){try{const le=await $fetch("/api/skills");u.value=le.skills}catch{u.value=[]}}Ot(()=>{Oe(),X(),window.addEventListener("keydown",j)}),Ct(()=>{window.removeEventListener("keydown",j)});function E(le,he={}){if(a.value=le,l.value=null,o.value="files",t.setSelectedFeatureId(le),he.openViewer!==!1){const Y=c.value.find(Ae=>Ae.id===le);Y&&(g.value=Y,p.value=!0)}}function U(){p.value=!1,g.value=null}function j(le){(le.ctrlKey||le.metaKey)&&le.key.toLowerCase()==="k"&&(le.preventDefault(),O.value||(O.value=!0))}function W(){O.value=!1}function I(le){E(le,{openViewer:!1}),O.value=!1}function z(){O.value=!0}const xe=ee(()=>c.value.map(le=>le.id));function J(le){return f.value[le]??{critical:0,major:0}}const fe={plan:["tasks","implement"],tasks:["implement"],implement:[],clarify:[],analyze:[]},S={analyze:["skill:better-spec"]};async function w(le,he,Y){if(le.startsWith("skill:")){const Ae=le.replace("skill:",""),Ie=Y?e.conversations.find(_t=>_t.id===Y):null;return(await $fetch(`/api/skills/${Ae}/prompt`,{method:"POST",body:{featureId:he,cwd:Ie?.worktreePath}})).prompt}return`/speckit.${le} ${he}`}function M(le,he){if(he)return null;const Y=e.findConversationByFeature(le);return Y&&!e.isConversationStreaming(Y.id)&&!Y.finalized?(e.selectConversation(Y.id),Y.id):null}function B(le){const he=e.findConversationByFeature(le);return he&&he.finalized?(i.error(`This feature has a finalized conversation "${he.title}". Please archive it first to start a new conversation.`),e.selectConversation(he.id),!0):!1}async function K(le,he,Y){const Ae=await e.createConversation({featureId:le,baseBranch:Y});if(!Ae)throw new Error("Failed to create conversation");return e.renameConversation(Ae,he),e.selectConversation(Ae),Ae}async function oe(le,he){e.addUserMessage(he,le),e.saveConversation(le,!0);const Y=e.conversations.find(ze=>ze.id===le),Ae=e.addAssistantMessage(le);e.startSession(`session-${Date.now()}`,le),e.startConversationStreaming(le);const Ie={};Y?.worktreePath&&(Ie.cwd=Y.worktreePath,Ie.worktreeBranch=Y.worktreeBranch),Y?.featureId&&(Ie.featureId=Y.featureId),await n(he,Ae.id,le,Object.keys(Ie).length>0?Ie:void 0)}async function ye(le,he,Y){const Ae=S[he];let Ie;if(Ae&&Ae.length>0){const ze=[...Ae.slice(1),he,...fe[he]||[]];s(le,Y,ze);const _t=Ae[0];try{Ie=await w(_t,le,Y)}catch(Ht){i.error(Ht instanceof Error?Ht.message:"Failed to resolve prerequisite step");return}}else{const ze=fe[he]||[];ze.length>0&&s(le,Y,ze),Ie=`/speckit.${he} ${le}`}await oe(Y,Ie)}async function Ne(le,he,Y){const Ae=le.shiftKey;if(!Ae&&B(he))return;const Ie=M(he,Ae);if(Ie){try{await ye(he,Y,Ie)}catch(ze){i.error(ze instanceof Error?ze.message:"Failed to run cascade action")}return}k.value={type:"cascade",featureId:he,command:Y,title:`${Y}: ${he}`},x.value=!0}async function Ce(le,he){B(he)||(k.value={type:"open-chat",featureId:he,title:`spec: ${he}`},x.value=!0)}async function He(le,he,Y){let Ae;try{const Ie=e.conversations.find(ze=>ze.id===Y);Ae=await $fetch(`/api/skills/${he}/prompt`,{method:"POST",body:{featureId:le,cwd:Ie?.worktreePath}})}catch(Ie){throw new Error(Ie instanceof Error?Ie.message:"Failed to render skill prompt")}await oe(Y,Ae.prompt)}async function Ue(le,he,Y){const Ae=le.shiftKey;if(!Ae&&B(he))return;const Ie=M(he,Ae);if(Ie){try{await He(he,Y,Ie)}catch(ze){i.error(ze instanceof Error?ze.message:"Failed to run skill")}return}k.value={type:"skill",featureId:he,skillId:Y,title:`skill: ${Y} — ${he}`},x.value=!0}function pe(){x.value=!1,k.value=null}async function Pe(le){if(k.value){b.value=!0;try{const he=k.value,Y=await K(he.featureId,he.title,le);he.type==="cascade"?await ye(he.featureId,he.command,Y):he.type==="skill"&&await He(he.featureId,he.skillId,Y),x.value=!1,k.value=null}catch(he){i.error(he instanceof Error?he.message:"Failed to create conversation")}finally{b.value=!1}}}return(le,he)=>{const Y=XS,Ae=k_,Ie=F_;return v(),y("div",pR,[d("div",mR,[he[2]||(he[2]=d("div",{class:"flex items-center gap-2 min-w-0"},null,-1)),d("div",gR,[d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Search (Ctrl/Cmd+K)",onClick:z},[te(m(bs),{class:"h-4 w-4"})]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Refresh",onClick:Oe},[te(m(ys),{class:Ze(["h-4 w-4",{"animate-spin":m(h)}])},null,8,["class"])])])]),d("div",OR,[d("div",vR,[te(m(bs),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-retro-subtle"}),Je(d("input",{"onUpdate:modelValue":he[0]||(he[0]=ze=>nt($)?$.value=ze:null),type:"text",placeholder:"Search features...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono rounded border border-retro-border bg-retro-panel text-retro-text placeholder:text-retro-subtle focus:outline-none focus:border-retro-cyan transition-colors"},null,512),[[Lt,m($)]])])]),d("div",bR,[d("div",xR,[(v(!0),y($e,null,Ye(m(V),ze=>(v(),y("div",{key:ze.id,ref_for:!0,ref:_t=>{m(L)[ze.id]=_t}},[te(Y,{feature:ze,skills:m(u),"is-active":m(ce)===ze.id,"critical-alerts":J(ze.id).critical,"major-alerts":J(ze.id).major,onSelect:he[1]||(he[1]=_t=>E(_t,{openViewer:!0})),onCascade:Ne,onOpenChat:Ce,onSkill:Ue},null,8,["feature","skills","is-active","critical-alerts","major-alerts"])]))),128))]),m(h)&&m(c).length===0?(v(),y("div",yR,[...he[3]||(he[3]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading features...",-1)])])):H("",!0),!m(h)&&m(c).length>0&&m(V).length===0?(v(),y("div",kR,[te(m(bs),{class:"h-10 w-10 text-retro-subtle mb-3"}),he[4]||(he[4]=d("p",{class:"text-sm font-mono text-retro-muted"},"No matching features",-1)),he[5]||(he[5]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Try a different search term ",-1))])):H("",!0),!m(h)&&m(c).length===0?(v(),y("div",wR,[te(m(nv),{class:"h-10 w-10 text-retro-subtle mb-3"}),he[6]||(he[6]=d("p",{class:"text-sm font-mono text-retro-muted"},"No features found",-1)),he[7]||(he[7]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Create a feature in specs/ to get started ",-1))])):H("",!0)]),m(p)&&m(g)?(v(),be(Ae,{key:0,feature:m(g),onClose:U},null,8,["feature"])):H("",!0),m(O)?(v(),be(Ie,{key:1,"available-feature-ids":m(xe),onClose:W,onSelect:I},null,8,["available-feature-ids"])):H("",!0),te(ku,{show:m(x),creating:m(b),onClose:pe,onCreate:Pe},null,8,["show","creating"])])}}}),$R={class:"h-full flex flex-col bg-retro-black"},CR={class:"flex-shrink-0 px-3 py-2 border-b border-retro-border space-y-2"},QR={class:"flex items-center justify-between gap-2"},PR={class:"flex items-center gap-1"},TR={class:"relative"},MR=["placeholder"],AR={key:0,class:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-retro-yellow/10 border-b border-retro-yellow/30 text-xs"},_R={class:"text-retro-yellow font-mono"},RR={class:"flex-1 overflow-y-auto p-2"},BR={key:0,class:"space-y-1"},ZR={key:1,class:"text-center py-6 text-retro-muted"},ER={class:"font-mono text-xs"},DR={key:1,class:"text-center py-8 text-retro-muted"},LR={key:0,class:"space-y-2"},XR={class:"flex items-start justify-between gap-2"},IR={class:"min-w-0"},VR={class:"text-sm font-mono text-retro-text truncate"},zR={class:"text-xs text-retro-muted mt-1 truncate"},NR={class:"text-xs text-retro-muted/70 mt-1"},WR={class:"text-xs text-retro-muted/70"},qR={class:"flex items-center gap-1 flex-shrink-0"},jR=["onClick"],YR=["onClick"],FR={key:1,class:"text-center py-6 text-retro-muted"},UR={class:"font-mono text-xs"},GR={key:1,class:"text-center py-8 text-retro-muted"},HR=Ve({__name:"ConversationsPanel",setup(r){const e=vr(),t=vo(),n=T(""),s=T(""),i=T(!1),o=T(!1),a=T(!1),l=T(!1),c=T(null);let u=null;We(n,W=>{u&&clearTimeout(u),u=setTimeout(()=>{s.value=W},180)},{immediate:!0}),Ct(()=>{u&&(clearTimeout(u),u=null)});const h=new Map,f=new Map;We(()=>e.sortedConversations.map(W=>W.id),W=>{const I=new Set(W);for(const z of h.keys())I.has(z)||h.delete(z)},{immediate:!0}),We(()=>e.sortedArchivedConversations.map(W=>W.id),W=>{const I=new Set(W);for(const z of f.keys())I.has(z)||f.delete(z)},{immediate:!0});function p(W){const I=W.messages[W.messages.length-1];return[W.updatedAt,W.title,W.messages.length,I?.id||"",I?.content?.length||0].join("|")}function g(W){const I=W.messages[W.messages.length-1];return[W.updatedAt,W.archivedAt,W.title,W.messages.length,I?.id||"",I?.content?.length||0].join("|")}function O(W){const I=p(W),z=h.get(W.id);if(z&&z.signature===I)return z.text;const xe=[W.title,...W.messages.map(J=>J.content||"")].join(`
66
- `).toLowerCase();return h.set(W.id,{signature:I,text:xe}),xe}function x(W){const I=g(W),z=f.get(W.id);if(z&&z.signature===I)return z.text;const xe=[W.title,...W.messages.map(J=>J.content||"")].join(`
67
- `).toLowerCase();return f.set(W.id,{signature:I,text:xe}),xe}const b=ee(()=>e.conversationViewMode==="archive"),k=ee(()=>{const W=e.sortedConversations;if(!s.value.trim())return W;const I=s.value.toLowerCase().trim();return W.filter(z=>O(z).includes(I))}),$=ee(()=>{const W=e.sortedArchivedConversations;if(!s.value.trim())return W;const I=s.value.toLowerCase().trim();return W.filter(z=>x(z).includes(I))}),P=ee(()=>e.previewingConversationId);async function R(){if(e.checkStorageLimits().atLimit){t.error("Delete or archive a conversation first (limit: 100).");return}i.value=!0}async function V(W){o.value=!0;try{if(!await e.createConversation({baseBranch:W})){t.error("Failed to create conversation");return}i.value=!1}catch(I){t.error(I instanceof Error?I.message:"Failed to create conversation")}finally{o.value=!1}}function L(W){e.selectConversation(W),e.setConversationViewMode("active")}async function ae(W){const I=await e.archiveConversation(W);if(!I.success){t.error(I.error||"Failed to archive conversation");return}t.success("Conversation archived")}async function ce(W){c.value=W,a.value=!0}function Oe(){a.value=!1,c.value=null}async function q(W){if(c.value){l.value=!0;try{const I=await e.restoreArchivedConversation(c.value,W);if(!I.success){t.error(I.error||"Failed to restore archived conversation");return}t.success("Archived conversation restored"),a.value=!1,c.value=null}finally{l.value=!1}}}async function X(W){const I=await e.deleteArchivedConversation(W);if(!I.success){t.error(I.error||"Failed to delete archived conversation");return}t.success("Archived conversation deleted")}function E(W,I){e.renameConversation(W,I)}function U(W){return new Date(W).toLocaleString()}function j(W){if(!W.length)return"No messages";const z=(W[W.length-1].content||"").trim();return z?z.length>80?`${z.slice(0,80)}...`:z:"No messages"}return(W,I)=>(v(),y("div",$R,[d("div",CR,[d("div",QR,[d("button",{onClick:R,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"New conversation","aria-label":"New conversation"},[te(m(ll),{class:"w-4 h-4"})]),d("div",PR,[d("button",{onClick:I[0]||(I[0]=z=>m(e).setConversationViewMode("active")),class:Ze(["p-1.5 rounded transition-colors",b.value?"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel":"text-retro-cyan bg-retro-cyan/10"]),title:"Active conversations","aria-label":"Active conversations"},[te(m(Y1),{class:"w-4 h-4"})],2),d("button",{onClick:I[1]||(I[1]=z=>m(e).setConversationViewMode("archive")),class:Ze(["p-1.5 rounded transition-colors",b.value?"text-retro-cyan bg-retro-cyan/10":"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel"]),title:"Archived conversations","aria-label":"Archived conversations"},[te(m(Dh),{class:"w-4 h-4"})],2)])]),d("div",TR,[te(m(bs),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted"}),Je(d("input",{"onUpdate:modelValue":I[2]||(I[2]=z=>n.value=z),type:"text",placeholder:b.value?"Search archive...":"Search conversations...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono bg-retro-black border border-retro-border rounded focus:border-retro-cyan focus:outline-none focus:ring-1 focus:ring-retro-cyan text-retro-text placeholder-retro-muted"},null,8,MR),[[Lt,n.value]])])]),m(e).isNearStorageLimit?(v(),y("div",AR,[te(m(In),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("p",_R,_(m(e).conversationCount)+" active conversations. Limit is 100. ",1)])):H("",!0),d("div",RR,[b.value?(v(),y($e,{key:1},[m(e).hasArchivedConversations?(v(),y("div",LR,[$.value.length>0?(v(!0),y($e,{key:0},Ye($.value,(z,xe,J,fe)=>{const S=[z.id,z.title,z.updatedAt,z.archivedAt,z.messages.length];if(fe&&fe.key===z.id&&Bh(fe,S))return fe;const w=(v(),y("div",{key:z.id,onClick:M=>ce(z.id),onKeydown:[Os(kr(M=>ce(z.id),["prevent"]),["enter"]),Os(kr(M=>ce(z.id),["prevent"]),["space"])],class:"w-full text-left p-3 rounded border border-retro-border hover:border-retro-cyan/50 hover:bg-retro-cyan/5 transition-colors",role:"button",tabindex:"0"},[d("div",XR,[d("div",IR,[d("h3",VR,_(z.title),1),d("p",zR,_(j(z.messages)),1),d("p",NR," Archived: "+_(U(z.archivedAt)),1),d("p",WR," Updated: "+_(U(z.updatedAt)),1)]),d("div",qR,[d("button",{onClick:kr(M=>ce(z.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-retro-cyan/40 text-retro-cyan rounded hover:bg-retro-cyan/10 transition-colors",title:"Restore archived conversation"},[te(m(Dh),{class:"w-3.5 h-3.5"}),I[9]||(I[9]=Xe(" Restore ",-1))],8,jR),d("button",{onClick:kr(M=>X(z.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-red-400/40 text-red-300 rounded hover:bg-red-500/10 transition-colors",title:"Delete archived conversation"},[te(m(yn),{class:"w-3.5 h-3.5"}),I[10]||(I[10]=Xe(" Delete ",-1))],8,YR)])])],40,["onClick","onKeydown"]));return w.memo=S,w},I,5),128)):(v(),y("div",FR,[d("p",UR,'No archived results for "'+_(n.value)+'"',1)]))])):(v(),y("div",GR,[...I[11]||(I[11]=[d("p",{class:"font-mono text-sm"},"No archived conversations",-1),d("p",{class:"text-xs mt-1"},"Archived conversations will appear here",-1)])]))],64)):(v(),y($e,{key:0},[m(e).hasConversations?(v(),y("div",BR,[k.value.length>0?(v(!0),y($e,{key:0},Ye(k.value,(z,xe,J,fe)=>{const S=[z.id,z.title,z.updatedAt,z.messages.length,z.finalized,z.id===m(e).activeConversationId,m(e).isConversationStreaming(z.id),P.value===z.id];if(fe&&fe.key===z.id&&Bh(fe,S))return fe;const w=(v(),y("div",{key:z.id},[te(P1,{conversation:z,"is-active":z.id===m(e).activeConversationId,"is-streaming":m(e).isConversationStreaming(z.id),"is-previewing":P.value===z.id,onSelect:M=>L(z.id),onArchive:M=>ae(z.id),onRename:M=>E(z.id,M)},null,8,["conversation","is-active","is-streaming","is-previewing","onSelect","onArchive","onRename"])]));return w.memo=S,w},I,3),128)):(v(),y("div",ZR,[d("p",ER,'No results for "'+_(n.value)+'"',1)]))])):(v(),y("div",DR,[...I[8]||(I[8]=[d("p",{class:"font-mono text-sm"},"No conversations",-1),d("p",{class:"text-xs mt-1"},'Click "New" to start',-1)])]))],64))]),te(ku,{show:i.value,creating:o.value,onClose:I[7]||(I[7]=z=>i.value=!1),onCreate:V},null,8,["show","creating"]),te(ku,{show:a.value,creating:l.value,onClose:Oe,onCreate:q},null,8,["show","creating"])]))}}),KR={mobile:768,tablet:1024};function JR(r,e){return r<e.mobile?"mobile":r<e.tablet?"tablet":"desktop"}const a1=wu("layout",{state:()=>({currentViewport:"desktop",chatFullscreen:!1}),getters:{isMobile:r=>r.currentViewport==="mobile",isTablet:r=>r.currentViewport==="tablet",isDesktop:r=>r.currentViewport==="desktop",isChatFullscreen:r=>r.chatFullscreen},actions:{updateViewport(r){this.currentViewport=JR(r,KR)},toggleChatFullscreen(){this.chatFullscreen=!this.chatFullscreen},setChatFullscreen(r){this.chatFullscreen=r}}});function eB(){const r=T(null),e=T(!0);let t=null,n="smooth";const s=50;function i(){const f=r.value;return f?f.scrollHeight-f.scrollTop-f.clientHeight<s:!0}function o(){e.value=i()}function a(f="smooth"){if(n=f,t!==null)return;t=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):g=>setTimeout(()=>g(Date.now()),16))(()=>{t=null,Ut(()=>{const g=r.value;g&&g.scrollTo({top:g.scrollHeight,behavior:n})})})}function l(f="smooth"){a(f),e.value=!0}function c(f="smooth"){e.value&&a(f)}function u(){e.value=!0}function h(){e.value=!1}return{containerRef:r,shouldAutoScroll:Re(e),onScroll:o,scrollToBottom:a,forceScrollToBottom:l,maybeScrollToBottom:c,enableAutoScroll:u,disableAutoScroll:h}}function tB(r){if(!r)return null;if(r instanceof HTMLElement)return r;if(typeof r=="object"&&"$el"in r){const e=r.$el;return e instanceof HTMLElement?e:null}return null}function rB(r){const{allMessages:e,containerRef:t,estimateItemHeight:n=120,overscan:s=6}=r,i=T(0),o=T(0),a=T(new Map),l=new Map;let c=null;function u(k,$){if(!Number.isFinite($)||$<=0)return;const P=Math.ceil($);if(a.value.get(k)===P)return;const R=new Map(a.value);R.set(k,P),a.value=R}function h(k,$){u(k,$.getBoundingClientRect().height)}function f(k,$){const P=l.get(k);P&&c&&c.unobserve(P),P&&delete P.dataset.virtualMessageId,l.delete(k);const R=tB($);R&&(R.dataset.virtualMessageId=k,l.set(k,R),h(k,R),c&&c.observe(R))}function p(){const k=t.value;k&&(i.value=k.scrollTop)}const g=ee(()=>{const k=e.value,$=new Array(k.length);let P=0;for(let R=0;R<k.length;R++)$[R]=P,P+=a.value.get(k[R].id)??n;return{offsets:$,totalHeight:P}});function O(k,$){let P=0,R=k.length-1,V=k.length;for(;P<=R;){const L=Math.floor((P+R)/2);k[L]>=$?(V=L,R=L-1):P=L+1}return V===k.length?Math.max(0,k.length-1):V}const x=ee(()=>{const k=e.value;if(k.length===0)return[];const{offsets:$}=g.value,P=i.value,R=P+Math.max(o.value,1),V=O($,Math.max(0,P-n));let L=V;for(;L<k.length&&$[L]<R;)L++;const ae=Math.max(0,V-s),ce=Math.min(k.length,L+s),Oe=[];for(let q=ae;q<ce;q++)Oe.push({message:k[q],index:q,top:$[q]});return Oe}),b=ee(()=>g.value.totalHeight);return Ot(()=>{const k=t.value;k&&(o.value=k.clientHeight,i.value=k.scrollTop),c=new ResizeObserver($=>{for(const P of $){const R=P.target;if(t.value&&R===t.value){o.value=P.contentRect.height;continue}const V=R.dataset.virtualMessageId;V&&u(V,P.contentRect.height)}}),t.value&&c.observe(t.value);for(const[$,P]of l)P.dataset.virtualMessageId=$,c.observe(P),h($,P)}),Ct(()=>{c&&(c.disconnect(),c=null),l.clear()}),{visibleItems:x,totalHeight:b,onVirtualScroll:p,setItemRef:f}}const nB={key:0,class:"flex flex-col items-center justify-center h-full p-8 text-center"},sB={key:1,class:"relative"},iB={class:"sticky bottom-0"},oB={key:0,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50 backdrop-blur-sm"},aB={key:1,class:"px-4 py-2.5 bg-retro-red/20 border-t border-retro-red/50"},lB={class:"flex items-start gap-2"},cB={class:"flex-1 min-w-0"},uB={class:"flex items-center justify-between gap-2 mb-0.5"},hB={class:"text-xs font-mono text-retro-red/80 break-words whitespace-pre-wrap"},dB={key:2,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50"},fB=Ve({__name:"ChatMessages",setup(r){const e=vr(),{containerRef:t,onScroll:n,maybeScrollToBottom:s,scrollToBottom:i,forceScrollToBottom:o}=eB(),{visibleItems:a,totalHeight:l,onVirtualScroll:c,setItemRef:u}=rB({allMessages:ee(()=>e.messages),containerRef:t});function h(){n(),c()}const f=ee(()=>e.isActiveConversationStreaming),p=ee(()=>{const k=e.lastMessage;return!k||k.role!=="assistant"?null:k.status}),g=T(!1);function O(k){const $=k.contentBlocks;return!$||$.length===0?"":$.map(P=>{switch(P.type){case"tool_use":return`u:${P.id}:${P.status}:${P.inputSummary}`;case"tool_result":return`r:${P.id}:${P.toolUseId}:${P.isError?1:0}:${P.content.length}`;case"text":return`t:${P.id}:${P.text.length}`;case"thinking":return`k:${P.id}:${P.thinking.length}`;case"result_summary":return`s:${P.id}:${P.numTurns}:${P.durationMs}`;case"session_init":return`i:${P.id}:${P.model}:${P.tools.length}`;default:return""}}).join("|")}const x=T(null);function b(){if(x.value&&(x.value(),x.value=null),!t.value||typeof ResizeObserver>"u")return;const k=new ResizeObserver(()=>{s("instant")});k.observe(t.value),x.value=()=>{k.disconnect()}}return Ot(()=>{i("instant"),b()}),Ct(()=>{x.value&&x.value()}),We(()=>e.activeConversationId,()=>{g.value=!1,i("instant")}),We(t,()=>{b()}),We(()=>[e.activeConversationId,e.messages.length],([k,$])=>{!k||$===0||g.value||(g.value=!0,o("instant"))},{immediate:!0}),We(()=>e.messages.length,()=>{s("instant")}),We(()=>e.lastMessage?.content,()=>{s("instant")}),We([f,()=>e.lastError],()=>{s("instant")}),We(l,()=>{s("instant")}),(k,$)=>(v(),y("div",{ref_key:"containerRef",ref:t,class:"flex-1 overflow-y-auto",onScroll:h},[m(e).hasMessages?(v(),y("div",sB,[d("div",{class:"relative",style:nr({height:`${m(l)}px`})},[(v(!0),y($e,null,Ye(m(a),P=>(v(),y("div",{key:P.message.id,class:"absolute left-0 right-0 border-b border-retro-border/30",style:nr({transform:`translateY(${P.top}px)`})},[d("div",{ref_for:!0,ref:R=>m(u)(P.message.id,R)},[Zp([P.message.id,P.message.status,P.message.content,P.message.contentBlocks?.length||0,O(P.message),P.message.tools?.length||0],()=>te(T1,{message:P.message},null,8,["message"]),$,0)],512)],4))),128))],4)])):(v(),y("div",nB,[...$[2]||($[2]=[d("div",{class:"text-retro-muted text-sm font-mono mb-2"}," No messages yet ",-1),d("div",{class:"text-retro-muted text-xs font-mono"}," Send a message to start chatting ",-1)])])),d("div",iB,[m(f)&&!m(e).lastError?(v(),y("div",oB,[...$[3]||($[3]=[Dp('<div class="flex items-center gap-2"><div class="flex gap-1"><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:0ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:150ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:300ms;"></span></div><span class="text-xs font-mono text-retro-muted">Processing...</span></div>',1)])])):H("",!0),m(e).lastError?(v(),y("div",aB,[d("div",lB,[te(m(Oo),{class:"w-4 h-4 text-retro-red flex-shrink-0 mt-0.5"}),d("div",cB,[d("div",uB,[$[4]||($[4]=d("p",{class:"text-xs font-mono font-semibold text-retro-red"},"Error",-1)),d("button",{class:"text-xs font-mono text-retro-red/60 hover:text-retro-red underline",onClick:$[1]||($[1]=P=>m(e).clearError())}," Dismiss ")]),d("p",hB,_(m(e).lastError),1),$[5]||($[5]=d("p",{class:"text-xs font-mono text-retro-muted mt-1"}," Check browser console (F12) for more details ",-1))])])])):m(p)==="stopped"?(v(),y("div",dB,[...$[6]||($[6]=[d("div",{class:"flex items-center gap-2"},[d("span",{class:"w-2 h-2 rounded-full bg-retro-muted"}),d("span",{class:"text-xs font-mono text-retro-muted"},"Stopped")],-1)])])):H("",!0)])],544))}});function pB(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.755 10.059a7.5 7.5 0 0 1 12.548-3.364l1.903 1.903h-3.183a.75.75 0 1 0 0 1.5h4.992a.75.75 0 0 0 .75-.75V4.356a.75.75 0 0 0-1.5 0v3.18l-1.9-1.9A9 9 0 0 0 3.306 9.67a.75.75 0 1 0 1.45.388Zm15.408 3.352a.75.75 0 0 0-.919.53 7.5 7.5 0 0 1-12.548 3.364l-1.902-1.903h3.183a.75.75 0 0 0 0-1.5H2.984a.75.75 0 0 0-.75.75v4.992a.75.75 0 0 0 1.5 0v-3.18l1.9 1.9a9 9 0 0 0 15.059-4.035.75.75 0 0 0-.53-.918Z","clip-rule":"evenodd"})])}function Rp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function mB(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{d:"M3.478 2.404a.75.75 0 0 0-.926.941l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94 60.519 60.519 0 0 0 18.445-8.986.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.404Z"})])}function gB(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z","clip-rule":"evenodd"})])}const OB={class:"flex-shrink-0 flex-grow-0 border-t border-retro-border bg-retro-dark p-3"},vB={class:"flex items-center gap-2 mb-2"},bB={class:"relative min-w-0 flex-1 max-w-[154px] model-selector"},xB=["disabled"],yB={class:"truncate text-left"},kB={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[220px] max-w-[280px]"},wB={key:0,class:"px-3 py-1.5 text-xs font-mono text-retro-muted"},SB={class:"px-3 py-1 text-[11px] font-mono uppercase tracking-wide text-retro-cyan/80 select-none"},$B=["disabled","onClick"],CB={class:"truncate"},QB={class:"relative mode-selector"},PB={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[140px]"},TB=["onClick"],MB={class:"text-xs font-mono text-retro-muted"},AB={key:0,class:"mb-3 p-3 bg-retro-yellow/10 border border-retro-yellow/50 rounded"},_B={class:"flex items-center justify-between gap-3"},RB={class:"flex-1 min-w-0"},BB={class:"text-xs font-mono text-retro-text truncate"},ZB={class:"text-retro-cyan"},EB={key:0,class:"text-retro-muted"},DB={key:1,class:"text-retro-muted"},LB={key:1,class:"mb-3 p-3 bg-retro-cyan/10 border border-retro-cyan/50 rounded"},XB={key:2,class:"mb-2 flex flex-wrap gap-2"},IB=["src","alt"],VB={class:"mt-1 truncate text-[10px] font-mono text-retro-muted"},zB={class:"truncate text-[10px] font-mono text-retro-muted/80"},NB=["onClick"],WB={key:3,class:"mb-2"},qB={class:"text-[10px] font-mono text-retro-muted mb-1 uppercase tracking-wide"},jB={class:"space-y-1"},YB={class:"text-[10px] font-mono text-retro-yellow flex-shrink-0"},FB={class:"flex-1 text-xs font-mono text-retro-text truncate"},UB={key:0,class:"text-[10px] font-mono text-retro-muted flex-shrink-0"},GB=["onClick"],HB={class:"flex gap-2 items-start"},KB=["disabled"],JB={class:"flex-1 relative min-h-[40px]"},e7=["disabled","placeholder"],t7=["disabled","title"],Bp=4,r7=5*1024*1024,n7=Ve({__name:"ChatInput",props:{disabled:{type:Boolean}},setup(r){const e=r,t=vr(),n=bo(),{sendMessage:s,sendPermissionResponse:i,approvePlan:o,rejectPlan:a,abort:l,resetContext:c}=Cl(),u=T(""),h=T(null),f=T(null),p=T(!1),g=T(!1),O=T(!1),x=T([]);let b=null;const k=T(null),$=T([]),{data:P,pending:R}=bc("chat-input-ai-providers",()=>$fetch("/api/ai/providers"),{server:!1,default:()=>({providers:[]})}),V=ee(()=>P.value?.providers??[]),L=ee(()=>t.permissionMode==="ask"||t.permissionMode==="plan"),ae=ee(()=>{const G=new Map;for(const ne of V.value)for(const ve of ne.models)G.set(ve.label,(G.get(ve.label)??0)+1);return V.value.flatMap(ne=>ne.models.map(ve=>{const Be=ne.capabilities.streaming&&(!L.value||ne.capabilities.permissions),qe=(G.get(ve.label)??0)>1;return{key:`${ne.id}::${ve.key}`,providerId:ne.id,providerName:ne.name,modelKey:ve.key,modelLabel:ve.label,label:qe?`${ve.label} · ${ne.name}`:ve.label,compatible:Be}})).sort((ne,ve)=>ne.modelLabel.localeCompare(ve.modelLabel,void 0,{sensitivity:"base"})||ne.providerName.localeCompare(ve.providerName,void 0,{sensitivity:"base"}))}),ce=ee(()=>{const G=new Map;for(const ve of ae.value){const Be=G.get(ve.providerId);if(Be){Be.options.push(ve);continue}G.set(ve.providerId,{providerId:ve.providerId,providerName:ve.providerName,options:[ve]})}const de=new Map([["codex",0],["claude",1]]),ne=Array.from(G.values());return ne.sort((ve,Be)=>{const qe=de.get(ve.providerId)??99,Ge=de.get(Be.providerId)??99;return qe!==Ge?qe-Ge:ve.providerName.localeCompare(Be.providerName,void 0,{sensitivity:"base"})}),ne});function Oe(G){return`${G.providerId}::${G.modelKey}`}const q=ee(()=>{const G=t.activeConversation;return G?.providerId&&G.providerModelKey?{providerId:G.providerId,modelKey:G.providerModelKey}:k.value?k.value:n.providerSelection}),X=ee(()=>Oe(q.value)),E=ee(()=>ae.value.find(G=>G.key===X.value)||null),U=ee(()=>E.value?.label||"Select model");function j(G,de){t.setConversationProviderSelection(G,de.providerId,de.modelKey),t.clearProviderSession(G),t.saveConversation(G,!0)}function W(G){k.value&&(j(G,k.value),k.value=null)}function I(G){if(!G||!G.compatible)return;const de={providerId:G.providerId,modelKey:G.modelKey},ne=t.activeConversationId;if(ne){j(ne,de),k.value=null,O.value=!1;return}k.value=de,O.value=!1}const z={plan:Pu,ask:Tu,auto:Yp,bypass:Mu},xe={plan:"text-retro-cyan",ask:"text-retro-green",auto:"text-retro-yellow",bypass:"text-retro-red"};function J(G){t.setPermissionMode(G),g.value=!1}function fe(G){const de=G.target;de.closest(".mode-selector")||(g.value=!1),de.closest(".model-selector")||(O.value=!1)}Ot(()=>{document.addEventListener("click",fe),n.hydrate()}),Ct(()=>{document.removeEventListener("click",fe),b!==null&&typeof window<"u"&&typeof window.cancelAnimationFrame=="function"&&(window.cancelAnimationFrame(b),b=null)});const S=ee(()=>(u.value.trim().length>0||x.value.length>0)&&!p.value&&!t.pendingPermission&&!B.value),w=ee(()=>t.isActiveConversationStreaming&&!t.pendingPermission),M=ee(()=>t.pendingPermission!==null),B=ee(()=>t.pendingPlanApproval!==null);function K(){i(!0,t.activeConversationId)}function oe(){i(!1,t.activeConversationId)}function ye(){o(t.activeConversationId)}function Ne(){a(t.activeConversationId)}function Ce(){x.value=[],f.value&&(f.value.value="")}function He(G){x.value=x.value.filter(de=>de.id!==G)}function Ue(G){return G<1024?`${G} B`:G<1024*1024?`${(G/1024).toFixed(1)} KB`:`${(G/(1024*1024)).toFixed(1)} MB`}function pe(G){return new Promise((de,ne)=>{const ve=new FileReader;ve.onload=()=>{typeof ve.result=="string"?de(ve.result):ne(new Error("Failed to read image"))},ve.onerror=()=>ne(ve.error||new Error("Failed to read image")),ve.readAsDataURL(G)})}async function Pe(G){const de=G.target,ne=de.files?Array.from(de.files):[];if(ne.length===0)return;const{useToast:ve}=await vs(async()=>{const{useToast:Ge}=await import("./DjSReRpH.js").then(ot=>ot.n);return{useToast:Ge}},__vite__mapDeps([0,1,2]),import.meta.url),Be=ve();let qe=Bp-x.value.length;if(qe<=0){Be.warning(`You can attach up to ${Bp} images per message.`),de.value="";return}for(const Ge of ne){if(qe<=0)break;if(!Ge.type.startsWith("image/")){Be.warning(`Skipped "${Ge.name}": only image files are supported.`);continue}if(Ge.size>r7){Be.warning(`Skipped "${Ge.name}": max size is 5 MB.`);continue}try{const ot=await pe(Ge);x.value.push({id:`att-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:Ge.name,mimeType:Ge.type,size:Ge.size,dataUrl:ot}),qe--}catch{Be.error(`Failed to attach "${Ge.name}".`)}}de.value=""}const le=ee(()=>{if(t.isActiveConversationStreaming||p.value)return!1;const G=t.lastMessage;return G?.role==="assistant"&&G?.status==="error"});function he(G){const de=G.instructionFiles.length>0?G.instructionFiles.map(ve=>{const Be=ve.source==="cwd"?"cwd":"ancestor",qe=ve.mtime?` (mtime: ${ve.mtime})`:"";return`- \`${ve.path}\` [${Be}] - ${ve.hint}${qe}`}):["- (none detected from current cwd ancestry)"],ne=G.specContext.files.length>0?G.specContext.files.map(ve=>`- \`${ve}\``):["- (none)"];return["## Context Snapshot","",`- Time: ${G.generatedAt}`,`- Session state: **${G.sessionState}**`,`- Provider session ID: \`${G.providerSessionId??"(empty)"}\``,`- Provider: \`${G.providerId}\` / \`${G.providerModelKey}\``,`- Permission mode: \`${G.permissionMode}\``,`- CWD (requested): \`${G.requestedCwd}\``,`- CWD (effective): \`${G.effectiveCwd}\``,`- Feature: \`${G.featureId??"(none)"}\``,"","### Spec Context Injection",`- Active on next turn: **${G.specContext.active?"yes":"no"}**`,`- Reason: ${G.specContext.reason}`,...ne,"","### Detected Instruction Files",...de].join(`
68
- `)}function Y(G){return(G.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(ne=>ne.startsWith('"')&&ne.endsWith('"')||ne.startsWith("'")&&ne.endsWith("'")?ne.slice(1,-1):ne)}function Ae(G){const de=G.match(/^\/(?:spec-search|specsearch)\b(.*)$/i);if(!de)return null;const ne=Y(de[1]?.trim()??""),ve=[],Be={q:""};for(let qe=0;qe<ne.length;qe++){const Ge=ne[qe];if(Ge==="--mode"&&ne[qe+1]){const ot=ne[++qe];(ot==="keyword"||ot==="semantic"||ot==="hybrid")&&(Be.mode=ot);continue}if(Ge.startsWith("--mode=")){const ot=Ge.slice(7);(ot==="keyword"||ot==="semantic"||ot==="hybrid")&&(Be.mode=ot);continue}if(Ge==="--feature"&&ne[qe+1]){Be.featureId=ne[++qe];continue}if(Ge.startsWith("--feature=")){Be.featureId=Ge.slice(10);continue}if(Ge==="--file-type"&&ne[qe+1]){Be.fileType=ne[++qe];continue}if(Ge.startsWith("--file-type=")){Be.fileType=Ge.slice(12);continue}if(Ge==="--limit"&&ne[qe+1]){const ot=Number.parseInt(ne[++qe],10);Number.isFinite(ot)&&ot>0&&(Be.limit=ot);continue}if(Ge.startsWith("--limit=")){const ot=Number.parseInt(Ge.slice(8),10);Number.isFinite(ot)&&ot>0&&(Be.limit=ot);continue}ve.push(Ge)}return Be.q=ve.join(" ").trim(),Be}function Ie(G,de=1400){const ne=G.trim();return ne.length<=de?ne:`${ne.slice(0,de)}
69
- ...`}function ze(G,de){const ne=[];if(ne.push("## Spec Search Results"),ne.push(""),ne.push(`- Query: \`${G.q}\``),ne.push(`- Mode: \`${de.mode}\``),G.featureId&&ne.push(`- Feature filter: \`${G.featureId}\``),G.fileType&&ne.push(`- File type filter: \`${G.fileType}\``),ne.push(`- Hits: **${de.totalCount}** (${de.searchTime}ms)`),de.warning&&ne.push(`- Warning: ${de.warning}`),de.results.length===0)return ne.push(""),ne.push("No matching indexed chunks were found."),ne.join(`
70
- `);ne.push("");for(const[ve,Be]of de.results.entries()){const qe=Be.chunk;ne.push(`### ${ve+1}. \`${qe.sourcePath}:${qe.lineStart}\``),ne.push(`- Match: \`${Be.matchType}\` (score: ${Be.score.toFixed(3)})`),qe.headingHierarchy.length>0&&ne.push(`- Headings: ${qe.headingHierarchy.join(" > ")}`),ne.push(""),ne.push(Ie(qe.content)),ne.push("")}return ne.join(`
71
- `)}async function _t(G){const de=t.activeConversationId??await t.createConversation(),ne=t.addAssistantMessage(de);if(!G.q){t.updateMessage(ne.id,{content:["Usage: `/spec-search <query> [--mode keyword|semantic|hybrid] [--feature <feature-id>] [--file-type <type>] [--limit <n>]`","","Examples:","- `/spec-search FR-001`",'- `/spec-search "indexing indicator" --mode hybrid --feature 008-spec-search --limit 5`'].join(`
72
- `),status:"complete"},de);return}const ve=t.activeConversation,Be={q:G.q,mode:G.mode??"hybrid",featureId:G.featureId??ve?.featureId,fileType:G.fileType,limit:String(G.limit??5)};try{const qe=await $fetch("/api/specs/search",{query:Be});t.updateMessage(ne.id,{content:ze({...G,mode:Be.mode,featureId:Be.featureId},qe),status:"complete"},de)}catch(qe){const Ge=qe instanceof Error?qe.message:"Failed to run spec search";t.updateMessage(ne.id,{content:`Spec search failed: ${Ge}`,status:"error"},de)}}async function Ht(){const G=t.activeConversation,de={permissionMode:t.permissionMode};G?.hasWorktree&&G.worktreePath?de.cwd=G.worktreePath:G?.cwd&&(de.cwd=G.cwd),G?.featureId&&(de.featureId=G.featureId),G?.providerId&&(de.providerId=G.providerId),G?.providerModelKey&&(de.providerModelKey=G.providerModelKey),G?.providerSessionId&&(de.providerSessionId=G.providerSessionId);const ne=await $fetch("/api/chat/context",{query:de}),ve=t.activeConversationId??await t.createConversation(),Be=t.addAssistantMessage(ve);t.updateMessage(Be.id,{content:he(ne),status:"complete"},ve)}function ln(G=[]){const de=$a(t.activeConversation,!0)??{};return G.length>0?{...de,attachments:G}:Object.keys(de).length>0?de:void 0}function or(G){const de=t.addAssistantMessage(G);return t.startSession(`session-${Date.now()}`,G),t.startConversationStreaming(G),t.saveConversation(G,!0),de}function Xr(G,de,ne,ve){const Be=ne instanceof Error?ne.message:ve;t.setSessionError(Be,G),t.updateMessage(de,{status:"error"},G),t.endSession(G),t.endConversationStreaming(G)}async function xr(G,de){const ne=G!==void 0,ve=(G??u.value).trim(),Be=de??[...x.value];if(ve.length===0&&Be.length===0||t.isActiveConversationStreaming||p.value||e.disabled)return;const qe=!!t.activeConversationId;let Ge=null,ot=null;if(ve==="/reset"||ve==="/reset-context"||ve==="/new"||ve==="/clear"){await Rt();return}if(ve==="/context"||ve==="/ctx"){await Ht(),ne||(u.value="",Ce(),Kt());return}const Mn=Ae(ve);if(Mn){await _t(Mn),ne||(u.value="",Ce(),Kt());return}p.value=!0,ne||(u.value="",Ce(),Kt());try{if(await t.addUserMessageWithConversation(ve,Be),Ge=t.activeConversationId,!Ge)throw new Error("Failed to create or select a conversation");qe||W(Ge);const yr=or(Ge);ot=yr.id,await s(ve,yr.id,Ge,ln(Be))}catch(yr){if(Ge&&ot)Xr(Ge,ot,yr,"Failed to send message");else{const Jn=yr instanceof Error?yr.message:"Failed to send message";t.setSessionError(Jn)}}finally{p.value=!1}}async function Gn(){try{l(t.activeConversationId)}catch{}}function Ir(){t.isActiveConversationStreaming?cn():xr()}function cn(){const G=u.value.trim(),de=[...x.value];G.length===0&&de.length===0||($.value.push({id:`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,text:G,attachments:de}),u.value="",Ce(),Kt(),hn())}function Qn(G){$.value=$.value.filter(de=>de.id!==G)}async function Hn(){if($.value.length===0||t.isActiveConversationStreaming||p.value)return;const G=$.value.shift();await xr(G.text,G.attachments)}async function Rt(){if(t.activeConversationId){u.value="",Ce(),Kt(),p.value=!0;try{await c(t.activeConversationId);const G=t.addAssistantMessage(t.activeConversationId);t.updateMessage(G.id,{content:"✨ **Context cleared** — The AI conversation context has been reset. Starting fresh from here.",status:"complete"},t.activeConversationId);const{useToast:de}=await vs(async()=>{const{useToast:ve}=await import("./DjSReRpH.js").then(Be=>Be.n);return{useToast:ve}},__vite__mapDeps([0,1,2]),import.meta.url);de().success("AI context has been reset. The conversation will start fresh.")}catch(G){console.error("Failed to reset context:",G);const{useToast:de}=await vs(async()=>{const{useToast:ve}=await import("./DjSReRpH.js").then(Be=>Be.n);return{useToast:ve}},__vite__mapDeps([0,1,2]),import.meta.url);de().error("Failed to reset context. Please try again.")}finally{p.value=!1}}}async function un(){const G=t.messages;let de=null;for(let Be=G.length-1;Be>=0;Be--)if(G[Be].role==="user"){de={content:G[Be].content,attachments:G[Be].attachments??[]};break}if(!de||!t.activeConversationId)return;const ne=t.activeConversationId;t.clearError(),p.value=!0;let ve=null;try{const Be=or(ne);ve=Be.id,await s(de.content,Be.id,ne,ln(de.attachments))}catch(Be){if(ve)Xr(ne,ve,Be,"Failed to retry message");else{const qe=Be instanceof Error?Be.message:"Failed to retry message";t.setSessionError(qe,ne)}}finally{p.value=!1}}function Pn(G){G.key==="Enter"&&!G.shiftKey&&(G.preventDefault(),Ir())}function Kn(){const G=h.value;if(G){if(!u.value.trim()){G.style.height="";return}G.style.height="auto",G.style.height=Math.min(G.scrollHeight,200)+"px"}}function Tn(){if(b!==null)return;b=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):de=>setTimeout(()=>de(Date.now()),16))(()=>{b=null,Kn()})}function Kt(){const G=h.value;G&&(G.style.height="")}function hn(){Ut(()=>{h.value?.focus()})}return We(u,Tn),We(()=>t.isActiveConversationStreaming,(G,de)=>{de&&!G&&($.value.length>0?Ut(()=>Hn()):hn())}),We(()=>t.activeConversationId,()=>{t.activeConversationId&&(k.value=null),$.value=[],Ce(),hn()}),(G,de)=>(v(),y("div",OB,[d("div",vB,[d("div",bB,[d("button",{disabled:r.disabled||m(t).isActiveConversationStreaming||m(M)||m(B)||m(R)||m(ae).length===0,class:"flex items-center justify-between gap-1.5 w-full px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono text-retro-muted transition-colors disabled:opacity-60 disabled:cursor-not-allowed",onClick:de[0]||(de[0]=ne=>O.value=!m(O))},[d("span",yB,_(m(U)),1),te(m(Rp),{class:"w-3 h-3 flex-shrink-0"})],8,xB),m(O)?(v(),y("div",kB,[m(ae).length===0?(v(),y("div",wB," Loading models... ")):H("",!0),(v(!0),y($e,null,Ye(m(ce),ne=>(v(),y("div",{key:ne.providerId,class:"py-0.5"},[d("div",SB,_(ne.providerName),1),(v(!0),y($e,null,Ye(ne.options,ve=>(v(),y("button",{key:ve.key,disabled:!ve.compatible,class:Ze(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors disabled:opacity-50 disabled:cursor-not-allowed",m(X)===ve.key?"bg-retro-panel text-retro-text":"text-retro-muted"]),onClick:Be=>I(ve)},[d("span",CB,_(ve.modelLabel)+_(ve.compatible?"":" (unsupported for current permission mode)"),1)],10,$B))),128))]))),128))])):H("",!0)]),d("div",QB,[d("button",{class:Ze(["flex items-center gap-1.5 px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono transition-colors",xe[m(t).permissionMode]]),onClick:de[1]||(de[1]=ne=>g.value=!m(g))},[(v(),be(Fs(z[m(t).permissionMode]),{class:"w-4 h-4"})),d("span",null,_(m(Es)[m(t).permissionMode]),1),te(m(Rp),{class:"w-3 h-3"})],2),m(g)?(v(),y("div",PB,[(v(),y($e,null,Ye(["plan","ask","auto","bypass"],ne=>d("button",{key:ne,class:Ze(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors",[xe[ne],m(t).permissionMode===ne?"bg-retro-panel":""]]),onClick:ve=>J(ne)},[(v(),be(Fs(z[ne]),{class:"w-4 h-4"})),d("span",null,_(m(Es)[ne]),1)],10,TB)),64))])):H("",!0)]),d("span",MB,_(m(t).permissionMode==="plan"?"Plan only":m(t).permissionMode==="ask"?"Ask before actions":m(t).permissionMode==="auto"?"Auto approve":"All permissions"),1)]),m(M)?(v(),y("div",AB,[d("div",_B,[d("div",RB,[de[4]||(de[4]=d("div",{class:"text-xs font-mono text-retro-yellow font-bold mb-1"}," Permission Required ",-1)),d("div",BB,[d("span",ZB,_(m(t).pendingPermission?.tool),1),m(t).pendingPermission?.filePath?(v(),y("span",EB," - "+_(m(t).pendingPermission.filePath),1)):m(t).pendingPermission?.command?(v(),y("span",DB," - "+_(m(t).pendingPermission.command),1)):H("",!0)])]),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:K}," Allow "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:oe}," Deny ")])])])):H("",!0),m(B)?(v(),y("div",LB,[d("div",{class:"flex items-center justify-between gap-3"},[de[5]||(de[5]=d("div",{class:"flex-1 min-w-0"},[d("div",{class:"text-xs font-mono text-retro-cyan font-bold mb-1"}," Plan Ready for Review "),d("div",{class:"text-xs font-mono text-retro-muted"}," Approve to switch to Auto mode and start implementation. ")],-1)),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:ye}," Approve & Implement "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:Ne}," Reject ")])])])):H("",!0),m(x).length>0?(v(),y("div",XB,[(v(!0),y($e,null,Ye(m(x),ne=>(v(),y("div",{key:ne.id,class:"relative w-24 rounded border border-retro-border/70 bg-retro-black/80 p-1"},[d("img",{src:ne.dataUrl,alt:ne.name,class:"h-16 w-full rounded object-cover"},null,8,IB),d("div",VB,_(ne.name),1),d("div",zB,_(Ue(ne.size)),1),d("button",{class:"absolute -right-2 -top-2 rounded-full border border-retro-border bg-retro-panel p-0.5 text-retro-red hover:bg-retro-red/20",type:"button",onClick:ve=>He(ne.id)},[te(m(Qt),{class:"h-3 w-3"})],8,NB)]))),128))])):H("",!0),m($).length>0?(v(),y("div",WB,[d("div",qB," Queued ("+_(m($).length)+") ",1),d("div",jB,[(v(!0),y($e,null,Ye(m($),(ne,ve)=>(v(),y("div",{key:ne.id,class:"flex items-center gap-2 px-2.5 py-1.5 bg-retro-panel/50 border border-retro-border/30 rounded"},[d("span",YB,"#"+_(ve+1),1),d("span",FB,_(ne.text),1),ne.attachments.length>0?(v(),y("span",UB," +"+_(ne.attachments.length)+" img ",1)):H("",!0),d("button",{class:"flex-shrink-0 p-0.5 text-retro-muted hover:text-retro-red transition-colors",title:"Cancel queued message",onClick:Be=>Qn(ne.id)},[te(m(Qt),{class:"w-3.5 h-3.5"})],8,GB)]))),128))])])):H("",!0),d("div",HB,[d("input",{ref_key:"fileInputRef",ref:f,type:"file",accept:"image/*",multiple:"",class:"hidden",onChange:Pe},null,544),d("button",{class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-panel/70 text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-50 disabled:cursor-not-allowed transition-colors",type:"button",title:"Attach images",disabled:r.disabled||m(M)||m(B),onClick:de[2]||(de[2]=ne=>m(f)?.click())},[te(m(cv),{class:"w-5 h-5"})],8,KB),d("div",JB,[Je(d("textarea",{ref_key:"inputRef",ref:h,"onUpdate:modelValue":de[3]||(de[3]=ne=>nt(u)?u.value=ne:null),disabled:r.disabled||m(M)||m(B),placeholder:r.disabled?"This conversation is finalized (read-only)":m(t).isActiveConversationStreaming?"Type to queue a message...":"Type a message...",rows:"1",class:"w-full h-full min-h-[40px] px-3 py-2 bg-retro-black border border-retro-border rounded text-sm font-mono text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan disabled:opacity-50 disabled:cursor-not-allowed resize-none overflow-hidden",onKeydown:Pn},null,40,e7),[[Lt,m(u)]])]),m(le)?(v(),y("button",{key:0,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-yellow/20 text-retro-yellow hover:bg-retro-yellow/30 transition-colors",title:"Retry last message",onClick:un},[te(m(pB),{class:"w-5 h-5"})])):H("",!0),m(M)?H("",!0):(v(),y("button",{key:1,disabled:!m(S),title:m(t).isActiveConversationStreaming?"Queue message":"Send message",class:Ze(["flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded disabled:opacity-50 disabled:cursor-not-allowed transition-colors",m(t).isActiveConversationStreaming?"bg-retro-yellow/20 text-retro-yellow hover:bg-retro-yellow/30":"bg-retro-cyan/20 text-retro-cyan hover:bg-retro-cyan/30"]),onClick:Ir},[m(t).isActiveConversationStreaming?(v(),be(m(hv),{key:0,class:"w-5 h-5"})):(v(),be(m(mB),{key:1,class:"w-5 h-5"}))],10,t7)),m(w)?(v(),y("button",{key:2,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-red/20 text-retro-red hover:bg-retro-red/30 transition-colors",onClick:Gn},[te(m(gB),{class:"w-5 h-5"})])):H("",!0)]),de[6]||(de[6]=d("div",{class:"mt-1 text-xs font-mono text-retro-muted"}," Press Enter to send (or queue while AI is responding), Shift+Enter for new line. Slash commands: `/context`, `/reset`, `/new`, `/clear`, `/spec-search`. ",-1))]))}}),s7={class:"h-64 border-t border-retro-border bg-retro-dark/50 flex flex-col"},i7={class:"h-9 flex items-center justify-between px-3 border-b border-retro-border/40"},o7={key:0,class:"flex-1 flex items-center justify-center text-xs font-mono text-retro-muted"},a7={key:1,class:"flex-1 overflow-y-auto scrollbar-custom"},l7={class:"flex items-center gap-2 text-[10px] font-mono"},c7={class:"text-retro-muted"},u7={class:"text-retro-muted"},h7={class:"text-retro-green truncate"},d7={class:"mt-1 text-[11px] font-mono text-retro-text whitespace-pre-wrap break-words"},f7=Ve({__name:"ChatDebugPanel",setup(r){const e=vr(),{debugEvents:t}=O1(e);function n(i){return new Date(i).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function s(i){return i==="in"?"text-retro-cyan":i==="out"?"text-retro-yellow":"text-retro-muted"}return(i,o)=>(v(),y("div",s7,[d("div",i7,[o[1]||(o[1]=d("div",{class:"text-[11px] font-mono text-retro-text"}," Debug Stream (CLI/Provider) ",-1)),d("button",{class:"p-1 rounded hover:bg-retro-panel transition-colors",title:"Clear debug events",onClick:o[0]||(o[0]=a=>m(e).clearDebugEvents())},[te(m(yn),{class:"w-3.5 h-3.5 text-retro-muted"})])]),m(t).length===0?(v(),y("div",o7," No debug events yet ")):(v(),y("div",a7,[(v(!0),y($e,null,Ye(m(t),a=>(v(),y("div",{key:a.id,class:"px-3 py-2 border-b border-retro-border/20"},[d("div",l7,[d("span",c7,_(n(a.timestamp)),1),d("span",{class:Ze(s(a.direction))},_(a.direction.toUpperCase()),3),d("span",u7,_(a.channel),1),d("span",h7,_(a.eventType),1)]),d("pre",d7,_(a.payload),1)]))),128))]))]))}}),p7={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},m7={class:"flex items-center justify-between"},g7={class:"space-y-1 text-xs font-mono"},O7={class:"flex items-center gap-2"},v7={class:"relative"},b7=["disabled"],x7=["value"],y7=["value"],k7={class:"flex items-center gap-2"},w7={class:"text-retro-text"},S7={class:"relative"},$7=["disabled"],C7=["disabled"],Q7={class:"flex items-center gap-2"},P7=["disabled"],T7=["disabled"],M7=Ve({__name:"FinalizeConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=T(""),i=T(null),o=T(!1),a=T(!1),l=T(t.baseBranch),c=T([]),u=T(!1),h=Su(),f=T(null);async function p(){a.value=!0;try{const O=await $fetch("/api/chat/generate-commit-message",{method:"POST",body:{conversationId:t.worktreePath.split("/").pop()?.replace("sc-","")||"",worktreePath:t.worktreePath}});O.success&&O.message&&(s.value=O.message)}catch{}finally{a.value=!1}}Ot(async()=>{const O=(async()=>{try{const b=t.worktreePath.split("/").pop()||"",k=await $fetch(`/api/commits/${encodeURIComponent(b)}`,{params:{workingDirectory:t.worktreePath}});i.value=k.aheadCount}catch{i.value=null}})(),x=(async()=>{u.value=!0;try{await h.initialize();const b=await $fetch("/api/git/branches",{query:{workingDirectory:h.workingDirectory}});c.value=b.branches.filter(k=>!k.isRemote&&!k.name.startsWith("sc/")).map(k=>k.name),c.value.length>0&&!c.value.includes(l.value)&&(l.value=c.value.includes("main")?"main":c.value.includes("master")?"master":c.value[0])}catch{c.value=[]}finally{u.value=!1}})();await Promise.all([O,x]),Ut(()=>f.value?.focus())});function g(){s.value.trim()&&(o.value=!0,n("confirm",s.value.trim(),l.value))}return(O,x)=>(v(),y("div",p7,[d("div",m7,[x[4]||(x[4]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Finalize ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:x[0]||(x[0]=b=>n("cancel"))},[te(m(Qt),{class:"w-4 h-4"})])]),d("div",g7,[d("div",O7,[x[5]||(x[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",v7,[Je(d("select",{"onUpdate:modelValue":x[1]||(x[1]=b=>l.value=b),disabled:o.value||u.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[u.value?(v(),y("option",{key:0,value:r.baseBranch},_(r.baseBranch),9,x7)):H("",!0),(v(!0),y($e,null,Ye(c.value,b=>(v(),y("option",{key:b,value:b},_(b),9,y7))),128))],8,b7),[[Cs,l.value]]),te(m(Qu),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",k7,[x[6]||(x[6]=d("span",{class:"text-retro-muted"},"commits:",-1)),d("span",w7,_(i.value!==null?i.value:"..."),1)])]),d("div",S7,[Je(d("textarea",{ref_key:"textareaRef",ref:f,"onUpdate:modelValue":x[2]||(x[2]=b=>s.value=b),placeholder:"Squash commit message...",rows:"2",class:"w-full px-2 py-1.5 pr-8 text-xs font-mono bg-retro-black border border-retro-border rounded text-retro-text placeholder-retro-subtle focus:outline-none focus:border-retro-cyan resize-none",disabled:o.value||a.value},null,8,$7),[[Lt,s.value]]),d("button",{type:"button",disabled:o.value||a.value,class:"absolute right-1.5 top-1.5 p-0.5 rounded text-retro-muted hover:text-retro-cyan transition-colors disabled:opacity-40",title:"Generate commit message",onClick:p},[te(m(Qa),{class:Ze(["w-4 h-4",{"animate-spin":a.value}])},null,8,["class"])],8,C7)]),d("div",Q7,[d("button",{type:"button",disabled:!s.value.trim()||o.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:g},[te(m(Cu),{class:"w-3.5 h-3.5"}),Xe(" "+_(o.value?"Finalizing...":"Confirm"),1)],8,P7),d("button",{type:"button",disabled:o.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:x[3]||(x[3]=b=>n("cancel"))}," Cancel ",8,T7)])]))}}),A7={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},_7={class:"flex items-center justify-between"},R7={class:"space-y-1 text-xs font-mono"},B7={class:"flex items-center gap-2"},Z7={class:"text-retro-cyan"},E7={class:"flex items-center gap-2"},D7={class:"relative"},L7=["disabled"],X7=["value"],I7=["value"],V7={class:"flex items-center gap-2"},z7={class:"text-retro-text"},N7={class:"flex items-center gap-2"},W7=["disabled"],q7=["disabled"],j7=Ve({__name:"RebaseConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=T(null),i=T(!1),o=T(t.baseBranch),a=T([]),l=T(!1),c=Su();async function u(f){try{const p=await $fetch("/api/chat/compare",{params:{worktreePath:t.worktreePath,baseBranch:f}});s.value=p.ahead}catch{s.value=null}}Ot(async()=>{const f=u(o.value),p=(async()=>{l.value=!0;try{await c.initialize();const g=await $fetch("/api/git/branches",{query:{workingDirectory:c.workingDirectory}});a.value=g.branches.filter(O=>!O.isRemote&&!O.name.startsWith("sc/")).map(O=>O.name),a.value.length>0&&!a.value.includes(o.value)&&(o.value=a.value.includes("main")?"main":a.value.includes("master")?"master":a.value[0])}catch{a.value=[]}finally{l.value=!1}})();await Promise.all([f,p])}),We(o,f=>{u(f)});function h(){i.value=!0,n("confirm",o.value)}return(f,p)=>(v(),y("div",A7,[d("div",_7,[p[3]||(p[3]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Rebase Worktree ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:p[0]||(p[0]=g=>n("cancel"))},[te(m(Qt),{class:"w-4 h-4"})])]),d("div",R7,[d("div",B7,[p[4]||(p[4]=d("span",{class:"text-retro-muted"},"worktree:",-1)),d("span",Z7,_(r.worktreeBranch),1)]),d("div",E7,[p[5]||(p[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",D7,[Je(d("select",{"onUpdate:modelValue":p[1]||(p[1]=g=>o.value=g),disabled:i.value||l.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[l.value?(v(),y("option",{key:0,value:r.baseBranch},_(r.baseBranch),9,X7)):H("",!0),(v(!0),y($e,null,Ye(a.value,g=>(v(),y("option",{key:g,value:g},_(g),9,I7))),128))],8,L7),[[Cs,o.value]]),te(m(Qu),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",V7,[p[6]||(p[6]=d("span",{class:"text-retro-muted"},"commits ahead:",-1)),d("span",z7,_(s.value!==null?s.value:"..."),1)])]),d("div",N7,[d("button",{type:"button",disabled:i.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},[te(m(Cu),{class:"w-3.5 h-3.5"}),Xe(" "+_(i.value?"Rebasing...":"Confirm"),1)],8,W7),d("button",{type:"button",disabled:i.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:p[2]||(p[2]=g=>n("cancel"))}," Cancel ",8,q7)])]))}}),Y7={class:"flex-1 flex flex-col overflow-hidden"},F7={class:"flex-shrink-0 px-4 py-2 border-b border-retro-border flex items-center justify-between bg-retro-dark"},U7={class:"text-xs font-mono text-retro-text truncate"},G7={class:"flex items-center gap-2 flex-shrink-0"},H7={key:0,class:"text-xs font-mono text-retro-green"},K7={key:1,class:"text-[11px] font-mono text-retro-muted"},J7={key:0,class:"flex items-center justify-center h-full text-retro-muted text-xs font-mono"},e8=["innerHTML"],t8={key:0,class:"flex-shrink-0 px-4 py-2 border-t border-retro-border bg-retro-yellow/10 text-retro-yellow text-xs font-mono"},r8=Ve({__name:"ConflictFileEditor",props:{file:{},resolved:{type:Boolean},isAiResolving:{type:Boolean},strategy:{}},emits:["resolve","aiResolve","retry"],setup(r,{emit:e}){const t=r;T(t.file.content);const n=T(""),s=T(!1);We(()=>t.file.path,()=>{a()}),We(()=>t.file.content,()=>{a()});const i=ee(()=>{const c=/^<{7}\s/gm;return(t.file.content.match(c)||[]).length});function o(c){const u=c.split(".").pop()?.toLowerCase()||"";return{ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",vue:"vue",html:"html",css:"css",scss:"scss",less:"less",json:"json",yaml:"yaml",yml:"yaml",md:"markdown",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",sh:"bash",zsh:"bash",sql:"sql",graphql:"graphql",xml:"xml",svg:"xml",toml:"toml",ini:"ini",dockerfile:"dockerfile"}[u]||"text"}async function a(){s.value=!0;try{const{codeToHtml:c}=await vs(async()=>{const{codeToHtml:b}=await import("./B59S8ud-.js");return{codeToHtml:b}},__vite__mapDeps([3,1,2]),import.meta.url),u=o(t.file.path),f=t.file.content.split(`
73
- `);let p="",g=!1,O=!1,x=0;for(const b of f){x++;const k=/^<{7}\s/.test(b),$=/^={7}$/.test(b),P=/^>{7}\s/.test(b);if(k){g=!0,O=!1,p+=`<div class="conflict-line conflict-marker-line" data-line="${x}"><span class="line-number">${x}</span><span class="line-content conflict-marker">${l(b)}</span></div>
74
- `;continue}if($&&g){g=!1,O=!0,p+=`<div class="conflict-line conflict-marker-line" data-line="${x}"><span class="line-number">${x}</span><span class="line-content conflict-marker">${l(b)}</span></div>
75
- `;continue}if(P){O=!1,p+=`<div class="conflict-line conflict-marker-line" data-line="${x}"><span class="line-number">${x}</span><span class="line-content conflict-marker">${l(b)}</span></div>
76
- `;continue}let R=l(b);try{const ae=(await c(b||" ",{lang:u,theme:"vitesse-dark"})).match(/<code[^>]*><span class="line">(.*?)<\/span><\/code>/s);ae&&(R=ae[1])}catch{}let V="";g?V="conflict-ours":O&&(V="conflict-theirs"),p+=`<div class="conflict-line ${V}" data-line="${x}"><span class="line-number">${x}</span><span class="line-content">${R}</span></div>
77
- `}n.value=p}catch{const c=t.file.content.split(`
78
- `);n.value=c.map((u,h)=>{const f=h+1;return`<div class="conflict-line" data-line="${f}"><span class="line-number">${f}</span><span class="line-content">${l(u)}</span></div>`}).join(`
79
- `)}finally{s.value=!1}}function l(c){return c.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}return Ot(()=>{a()}),(c,u)=>(v(),y("div",Y7,[d("div",F7,[d("span",U7,_(r.file.path),1),d("div",G7,[r.resolved?(v(),y("span",H7," Resolved ")):i.value>0?(v(),y("span",K7,_(i.value)+" conflict "+_(i.value===1?"block":"blocks"),1)):H("",!0)])]),d("div",{class:Ze(["flex-1 overflow-auto bg-retro-black conflict-viewer",{"opacity-60":r.resolved}])},[s.value?(v(),y("div",J7," Highlighting... ")):(v(),y("div",{key:1,class:"conflict-code",innerHTML:n.value},null,8,e8))],2),i.value>0&&!r.resolved?(v(),y("div",t8," File contains "+_(i.value)+" conflict "+_(i.value===1?"block":"blocks")+". Use AI resolution to resolve. ",1)):H("",!0)]))}}),n8={class:"flex flex-col h-full border-l border-retro-border bg-retro-dark"},s8={class:"flex-shrink-0 px-3 py-2 border-b border-retro-border"},i8={class:"flex items-center gap-2"},o8={class:"text-[10px] font-mono text-retro-muted mt-1"},a8={key:0,class:"text-xs font-mono text-retro-muted text-center py-8"},l8={key:0,class:"bg-retro-panel/50 rounded px-2 py-1.5 border border-retro-border"},c8={class:"mt-0.5"},u8={class:"inline-block w-3 text-center opacity-70"},h8={key:1,class:"flex items-center gap-2 text-xs font-mono text-retro-cyan"},d8={class:"flex-shrink-0 border-t border-retro-border p-3 space-y-2"},f8=["disabled"],p8=["disabled"],m8={key:0},g8={key:1},O8=Ve({__name:"ConflictChatPanel",setup(r){const e=vr(),t=bo(),n=T(""),s=T(null),i=ee(()=>e.conflictState?.chatMessages??[]),o=ee(()=>e.conflictState?.lifecycleState==="resolving"),a=ee(()=>{if(!e.conflictState)return!1;const g=e.conflictState.files.length,O=e.conflictState.resolvedFiles.size;return g>0&&O>=g}),l=ee(()=>e.conflictState?e.conflictState.files.length-e.conflictState.resolvedFiles.size:0),c=ee(()=>`${t.providerId}/${t.providerModelKey}`);We(()=>i.value.length,async()=>{await Ut(),s.value&&(s.value.scrollTop=s.value.scrollHeight)});function u(){!e.conflictState||o.value||(e.conflictState.userGuidance=n.value.trim(),e.aiResolveAllConflicts())}function h(){e.cancelConflictResolution()}function f(g){switch(g.type){case"success":return"text-retro-green";case"error":return"text-retro-red";case"progress":return"text-retro-cyan";case"summary":return"text-retro-yellow";default:return"text-retro-muted"}}function p(g){switch(g.type){case"success":return"✓";case"error":return"✗";case"progress":return"▶";case"summary":return"─";default:return"●"}}return(g,O)=>(v(),y("div",n8,[d("div",s8,[d("div",i8,[te(m(Qa),{class:"w-4 h-4 text-retro-orange"}),O[1]||(O[1]=d("span",{class:"text-xs font-mono text-retro-text font-semibold"},"AI Conflict Resolution",-1))]),d("div",o8," Model: "+_(c.value),1)]),d("div",{ref_key:"messagesContainer",ref:s,class:"flex-1 overflow-y-auto px-3 py-2 space-y-2"},[i.value.length===0?(v(),y("div",a8," Enter optional guidance below and click resolve to start AI conflict resolution. ")):H("",!0),(v(!0),y($e,null,Ye(i.value,x=>(v(),y("div",{key:x.id,class:Ze(["text-xs font-mono leading-relaxed",x.role==="user"?"text-retro-text":f(x)])},[x.role==="user"?(v(),y("div",l8,[O[2]||(O[2]=d("span",{class:"text-retro-muted text-[10px]"},"Guidance:",-1)),d("div",c8,_(x.content),1)])):(v(),y($e,{key:1},[d("span",u8,_(p(x)),1),Xe(" "+_(x.content),1)],64))],2))),128)),o.value?(v(),y("div",h8,[...O[3]||(O[3]=[d("span",{class:"animate-pulse"},"●",-1),Xe(" Processing... ",-1)])])):H("",!0)],512),d("div",d8,[Je(d("textarea",{"onUpdate:modelValue":O[0]||(O[0]=x=>n.value=x),disabled:o.value,placeholder:'Optional: Add guidance for AI resolution (e.g., "prefer feature branch API changes", "keep both import sets")...',class:"w-full h-16 px-2 py-1.5 text-xs font-mono bg-retro-black text-retro-text border border-retro-border rounded resize-none focus:outline-none focus:border-retro-cyan/50 placeholder:text-retro-muted/50 disabled:opacity-50",spellcheck:"false"},null,8,f8),[[Lt,n.value]]),o.value?(v(),y("button",{key:1,type:"button",class:"w-full flex items-center justify-center gap-2 px-3 py-2 text-xs font-mono rounded border transition-colors bg-retro-red/10 border-retro-red/50 text-retro-red hover:bg-retro-red/20",onClick:h},[te(m(dv),{class:"w-4 h-4"}),O[4]||(O[4]=Xe(" Stop Resolution ",-1))])):(v(),y("button",{key:0,type:"button",disabled:a.value||l.value===0,class:"w-full flex items-center justify-center gap-2 px-3 py-2 text-xs font-mono rounded border transition-colors bg-retro-orange/10 border-retro-orange/50 text-retro-orange hover:bg-retro-orange/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:u},[te(m(Qa),{class:"w-4 h-4"}),a.value?(v(),y("span",m8,"All Conflicts Resolved")):(v(),y("span",g8,"Resolve Conflicts Automatically ("+_(l.value)+")",1))],8,p8))])]))}}),v8={key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60"},b8={class:"w-full max-w-7xl mx-4 my-8 h-[85vh] bg-retro-dark border border-retro-border rounded-lg shadow-xl flex flex-col overflow-hidden"},x8={class:"flex-shrink-0 px-4 py-3 border-b border-retro-border flex items-center justify-between"},y8={class:"flex items-center gap-3"},k8={class:"text-xs font-mono text-retro-muted"},w8={class:"flex items-center gap-2"},S8=["disabled"],$8=["disabled"],C8={key:0,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},Q8={key:1,class:"flex-1 flex items-center justify-center text-retro-red text-sm font-mono"},P8={key:2,class:"flex-1 flex overflow-hidden"},T8={class:"w-56 flex-shrink-0 border-r border-retro-border overflow-y-auto bg-retro-dark"},M8={class:"py-1"},A8=["onClick"],_8={class:"flex-1 flex flex-col overflow-hidden min-w-0"},R8={key:1,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},B8={class:"w-80 flex-shrink-0"},Z8=Ve({__name:"ConflictResolutionModal",emits:["close"],setup(r,{emit:e}){const t=e,n=vr(),s=T(null),i=T(!1),o=T(!1),a=ee(()=>n.conflictState?.files??[]),l=ee(()=>n.conflictState?.resolvedFiles??new Set),c=ee(()=>a.value.length),u=ee(()=>l.value.size),h=ee(()=>c.value>0&&u.value>=c.value),f=ee(()=>s.value?a.value.find(b=>b.path===s.value)??null:null);function p(b){return l.value.has(b)}function g(b){s.value=b}async function O(){i.value=!0;const b=await n.continueRebase();i.value=!1,b.success&&t("close")}async function x(){o.value=!0,await n.cancelConflictResolution(),o.value=!1,t("close")}return(b,k)=>(v(),be(Pr,{to:"body"},[te(xn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ht(()=>[m(n).conflictState?(v(),y("div",v8,[d("div",b8,[d("div",x8,[d("div",y8,[te(m(In),{class:"w-5 h-5 text-retro-yellow"}),k[0]||(k[0]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"Resolve Conflicts",-1)),d("span",k8,_(u.value)+"/"+_(c.value)+" resolved ",1)]),d("div",w8,[d("button",{type:"button",disabled:!h.value||i.value||o.value,class:"flex items-center gap-1 px-3 py-1.5 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:O},_(i.value?"Continuing...":"Continue Rebase"),9,S8),d("button",{type:"button",disabled:i.value||o.value,class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-red/50 text-retro-red hover:bg-retro-red/10 transition-colors disabled:opacity-40",onClick:x},_(o.value?"Aborting...":"Abort"),9,$8)])]),m(n).conflictState?.loading?(v(),y("div",C8," Loading conflict files... ")):m(n).conflictState?.error?(v(),y("div",Q8,_(m(n).conflictState.error),1)):(v(),y("div",P8,[d("div",T8,[d("div",M8,[(v(!0),y($e,null,Ye(a.value,$=>(v(),y("button",{key:$.path,type:"button",class:Ze(["w-full text-left px-3 py-2 text-xs font-mono flex items-center gap-2 transition-colors hover:bg-retro-panel",{"bg-retro-panel":s.value===$.path}]),onClick:P=>g($.path)},[p($.path)?(v(),be(m($u),{key:0,class:"w-3.5 h-3.5 text-retro-green flex-shrink-0"})):(v(),be(m(Oo),{key:1,class:"w-3.5 h-3.5 text-retro-yellow flex-shrink-0"})),d("span",{class:Ze(["truncate",p($.path)?"text-retro-green":"text-retro-yellow"])},_($.path),3)],10,A8))),128))])]),d("div",_8,[f.value?(v(),be(r8,{key:0,file:f.value,resolved:p(f.value.path)},null,8,["file","resolved"])):(v(),y("div",R8," Select a file to view "))]),d("div",B8,[te(O8)])]))])])):H("",!0)]),_:1})]))}}),E8={key:0,class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},D8={class:"flex items-center justify-between p-4 border-b border-retro-border"},L8={class:"flex items-center gap-2"},X8={class:"p-4"},I8={class:"mt-2 text-sm text-retro-text font-mono truncate"},V8={class:"flex justify-end gap-3 p-4 border-t border-retro-border"},z8=Ve({__name:"DeleteConfirmModal",props:{show:{type:Boolean},title:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=e;function n(s){s.target===s.currentTarget&&t("cancel")}return(s,i)=>(v(),be(Pr,{to:"body"},[te(xn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:ht(()=>[r.show?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:n},[te(xn,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-200","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:ht(()=>[r.show?(v(),y("div",E8,[d("div",D8,[d("div",L8,[te(m(In),{class:"w-5 h-5 text-retro-red"}),i[3]||(i[3]=d("h3",{class:"text-lg font-mono text-retro-text"},"Delete Conversation",-1))]),d("button",{onClick:i[0]||(i[0]=o=>t("cancel")),class:"p-1 hover:bg-retro-panel rounded transition-colors"},[te(m(Qt),{class:"w-5 h-5 text-retro-muted"})])]),d("div",X8,[i[4]||(i[4]=d("p",{class:"text-sm text-retro-muted font-mono"}," Are you sure you want to delete this conversation? ",-1)),d("p",I8,' "'+_(r.title)+'" ',1),i[5]||(i[5]=d("p",{class:"mt-3 text-xs text-retro-muted"}," This action cannot be undone. ",-1))]),d("div",V8,[d("button",{onClick:i[1]||(i[1]=o=>t("cancel")),class:"px-4 py-2 text-sm font-mono text-retro-muted border border-retro-border rounded hover:bg-retro-panel transition-colors"}," Cancel "),d("button",{onClick:i[2]||(i[2]=o=>t("confirm")),class:"px-4 py-2 text-sm font-mono text-white bg-retro-red/80 border border-retro-red rounded hover:bg-retro-red transition-colors"}," Delete ")])])):H("",!0)]),_:1})])):H("",!0)]),_:1})]))}}),N8={class:"h-full flex flex-col bg-retro-black"},W8={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},q8={class:"flex items-center gap-2 min-w-0"},j8={class:"text-xs font-mono text-retro-text truncate"},Y8={class:"flex items-center gap-1"},F8=["disabled","title"],U8=["title"],G8=["title"],H8=["disabled"],K8={key:4,class:"flex-shrink-0 px-4 py-2 border-b border-retro-border bg-retro-green/10 text-retro-green text-xs font-mono text-center"},J8={class:"flex-1 min-h-0 flex flex-col"},eZ=Ve({__name:"ChatPanel",setup(r){const e=vr(),t=a1(),{disconnectConversation:n}=Cl();Ot(async()=>{try{const I=await $fetch("/api/cwd");e.setCwd(I.cwd)}catch{}});const s=ee(()=>e.activeConversation?.title||"New Chat"),i=T(!1),o=ee(()=>t.isChatFullscreen),a=T(!1);We(a,I=>{e.setDebugStreamEnabled(I)}),Ct(()=>{e.setDebugStreamEnabled(!1)});function l(){t.toggleChatFullscreen()}async function c(){i.value=!1;const I=e.activeConversationId;I&&(n(I),await e.deleteConversation(I)),e.clearMessages()}function u(){e.hasMessages&&(i.value=!0)}function h(){i.value=!1}const f=T(!1),p=T(null),g=ee(()=>e.activeConversation?.finalized===!0),O=ee(()=>g.value),x=T(null),b=T(!1);async function k(){const I=e.activeConversation;if(!I?.worktreePath||!I?.baseBranch){x.value=null;return}b.value=!0;try{const z=await $fetch("/api/chat/compare",{params:{worktreePath:I.worktreePath,baseBranch:I.baseBranch}});x.value=z}catch{x.value=null}finally{b.value=!1}}We(()=>[e.activeConversationId,e.activeConversation?.worktreePath,e.activeConversation?.baseBranch,e.activeConversation?.lastCommitTime,e.activeConversation?.updatedAt,e.isActiveConversationStreaming],()=>{k()},{immediate:!0}),We(()=>e.activeConversationId,()=>{f.value=!1,E.value=!1,p.value=null});const $=ee(()=>x.value?x.value.ahead===0&&x.value.behind===0:!1),P=ee(()=>{const I=e.activeConversation;return I?.hasWorktree&&!I?.finalized}),R=ee(()=>{const I=e.activeConversation;return!!I?.hasWorktree&&!I?.finalized&&!e.isActiveConversationStreaming&&!$.value});function V(){f.value=!0,p.value=null}async function L(I,z){const xe=e.activeConversationId;if(!xe)return;const J=await e.finalizeConversation(xe,I,z);if(f.value=!1,J.success)p.value={type:"success",message:`Merged to ${z}`},setTimeout(()=>{p.value=null},5e3);else if(J.rebaseInProgress)p.value=null;else{const fe=J.conflictFiles?.length?`Conflict in: ${J.conflictFiles.join(", ")}`:J.error||"Finalize failed";p.value={type:"error",message:fe}}}function ae(){f.value=!1}function ce(){if(!e.conflictState&&e.activeConversation?.hasWorktree){const I=e.activeConversation?.baseBranch||"main";p.value={type:"success",message:`Rebased onto ${I}`},setTimeout(()=>{p.value=null},5e3)}else p.value=null}const Oe=T(!1),q=ee(()=>!!e.activeConversation?.previewBranch);async function X(){const I=e.activeConversationId;if(!I)return;Oe.value=!0,p.value=null;const z=q.value,xe=await e.togglePreview(I);if(xe.success){const J=z?`Switched back to ${e.activeConversation?.baseBranch}`:"Preview active — main worktree updated";p.value={type:"success",message:J},setTimeout(()=>{p.value=null},3e3)}else p.value={type:"error",message:xe.error||"Preview toggle failed"};Oe.value=!1}const E=T(!1);function U(){E.value=!0,p.value=null}async function j(I){const z=e.activeConversationId;if(!z)return;const xe=await e.rebaseConversation(z,I);E.value=!1,xe.success?(p.value={type:"success",message:`Rebased onto ${I}`},setTimeout(()=>{p.value=null},5e3)):xe.rebaseInProgress?p.value=null:p.value={type:"error",message:xe.error||"Rebase failed"}}function W(){E.value=!1}return(I,z)=>(v(),y("div",N8,[d("div",W8,[d("div",q8,[d("span",j8,_(m(s)),1)]),d("div",Y8,[m(P)?(v(),y("button",{key:0,disabled:m(Oe),class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors disabled:opacity-40 disabled:cursor-not-allowed",title:m(q)?"End preview: switch back to base branch":"Preview: test worktree changes in main worktree",onClick:X},[m(q)?(v(),be(m(tv),{key:0,class:"w-4 h-4 text-retro-cyan"})):(v(),be(m(rv),{key:1,class:"w-4 h-4"}))],8,F8)):H("",!0),m(R)?(v(),y("button",{key:1,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Rebase: sync worktree onto target base branch",onClick:U},[...z[2]||(z[2]=[Dp('<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><circle cx="7" cy="4.5" r="1.5" fill="currentColor"></circle><circle cx="18" cy="20" r="1.5" fill="currentColor"></circle><circle cx="12" cy="7" r="1.4" fill="currentColor" opacity="0.9"></circle><path d="M7 6V16M7 16L4.5 13.5M7 16L9.5 13.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8.4 7H12.5C15.5376 7 18 9.46243 18 12.5V18.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M15.5 16L18 18.5L20.5 16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg>',1)])])):H("",!0),m(R)?(v(),y("button",{key:2,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Finalize: squash & merge to base branch",onClick:V},[te(m($u),{class:"w-4 h-4"})])):H("",!0),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:m(o)?"Exit fullscreen chat":"Fullscreen chat",onClick:l},[m(o)?(v(),be(m(Wp),{key:0,class:"w-4 h-4"})):(v(),be(m(qp),{key:1,class:"w-4 h-4"}))],8,U8),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:m(a)?"Hide debug stream":"Show debug stream",onClick:z[0]||(z[0]=xe=>a.value=!m(a))},[te(m(q1),{class:Ze(["w-4 h-4",m(a)?"text-retro-cyan":""])},null,8,["class"])],8,G8),d("button",{disabled:!m(e).hasMessages,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-30 disabled:cursor-not-allowed transition-colors",title:"New conversation",onClick:u},[te(m(yn),{class:"w-4 h-4"})],8,H8)])]),te(z8,{show:m(i),title:m(s),onConfirm:c,onCancel:h},null,8,["show","title"]),m(f)&&m(e).activeConversation?.hasWorktree?(v(),be(M7,{key:0,"base-branch":m(e).activeConversation.baseBranch||"main","worktree-branch":m(e).activeConversation.worktreeBranch||"","worktree-path":m(e).activeConversation.worktreePath||"",onConfirm:L,onCancel:ae},null,8,["base-branch","worktree-branch","worktree-path"])):H("",!0),m(E)&&m(e).activeConversation?.hasWorktree?(v(),be(j7,{key:1,"base-branch":m(e).activeConversation.baseBranch||"main","worktree-branch":m(e).activeConversation.worktreeBranch||"","worktree-path":m(e).activeConversation.worktreePath||"",onConfirm:j,onCancel:W},null,8,["base-branch","worktree-branch","worktree-path"])):H("",!0),m(e).conflictState?(v(),be(Z8,{key:2,onClose:ce})):H("",!0),m(p)?(v(),y("div",{key:3,class:Ze(["flex-shrink-0 px-4 py-2 border-b border-retro-border text-xs font-mono",m(p).type==="success"?"bg-retro-green/10 text-retro-green":"bg-retro-red/10 text-retro-red"])},[Xe(_(m(p).message)+" ",1),m(p).type==="error"?(v(),y("button",{key:0,class:"ml-2 underline hover:no-underline",onClick:z[1]||(z[1]=xe=>p.value=null)}," dismiss ")):H("",!0)],2)):H("",!0),m(g)?(v(),y("div",K8," This conversation has been finalized and is read-only. ")):H("",!0),d("div",J8,[te(fB,{class:"flex-1 overflow-hidden"}),m(a)?(v(),be(f7,{key:0})):H("",!0)]),te(n7,{disabled:m(O)},null,8,["disabled"])]))}}),tZ={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},rZ={class:"flex items-center gap-2 min-w-0"},nZ=["title"],sZ={class:"text-retro-text font-mono text-sm truncate"},iZ={class:"text-retro-muted"},oZ={class:"text-retro-text"},aZ={class:"text-retro-muted font-mono text-xs flex-shrink-0"},lZ={class:"flex-1 overflow-auto"},cZ={key:0,class:"flex items-center justify-center gap-2 text-retro-muted text-sm py-8"},uZ={key:1,class:"flex items-center justify-center text-retro-muted text-sm py-8"},hZ={key:2,class:"flex items-center justify-center text-retro-muted text-sm py-8"},dZ={key:3,class:"w-full text-xs font-mono border-collapse diff-table"},fZ={key:0,class:"diff-warning"},pZ={key:0,colspan:"3",class:"diff-hunk-header px-4 py-1"},mZ={class:"diff-line-num select-none text-right px-2 w-12"},gZ={class:"diff-line-num select-none text-right px-2 w-12 border-r border-retro-border"},OZ={class:"diff-line-content px-3 whitespace-pre-wrap break-all"},vZ={key:0,class:"diff-sign"},bZ={key:1,class:"diff-sign"},xZ={key:2,class:"diff-sign"},yZ={key:4,class:"flex items-center justify-center text-retro-muted text-sm py-8"},kZ=Ve({__name:"GitFileDiffViewer",props:{file:{},commitHash:{},content:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=T(null),i=ee(()=>t.commitHash.substring(0,7)),o=ee(()=>Hs[t.file.status]||{label:t.file.status,colorClass:"text-retro-muted"}),a=ee(()=>t.file.status==="R"&&t.file.oldPath);function l(c){c.key==="Escape"&&(c.preventDefault(),c.stopPropagation(),n("close"))}return Ot(()=>{s.value?.focus()}),(c,u)=>(v(),y("div",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:l,class:"flex flex-col h-full bg-retro-dark focus:outline-none","aria-label":"File diff viewer",role:"region"},[d("div",tZ,[d("div",rZ,[d("span",{class:Ze(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",o.value.colorClass]),title:o.value.label},_(r.file.status),11,nZ),d("span",sZ,[a.value&&r.file.oldPath?(v(),y($e,{key:0},[d("span",iZ,_(r.file.oldPath),1),u[1]||(u[1]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",oZ,_(r.file.path),1)],64)):(v(),y($e,{key:1},[Xe(_(r.file.path),1)],64))]),d("span",aZ," @ "+_(i.value),1)]),d("button",{onClick:u[0]||(u[0]=h=>n("close")),class:"p-1 hover:bg-retro-dark rounded transition-colors flex-shrink-0 focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close diff viewer",title:"Close (Esc)"},[te(m(Qt),{class:"w-5 h-5 text-retro-muted hover:text-retro-text"})])]),d("div",lZ,[r.loading?(v(),y("div",cZ,[...u[2]||(u[2]=[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Xe(" Loading diff... ",-1)])])):r.content&&r.content.binary?(v(),y("div",uZ,[...u[3]||(u[3]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," Binary file — cannot display diff ",-1)])])):r.content&&r.content.lines.length===0?(v(),y("div",hZ,[...u[4]||(u[4]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," No changes in this file ",-1)])])):r.content?(v(),y("table",dZ,[d("tbody",null,[r.content.truncated?(v(),y("tr",fZ,[...u[5]||(u[5]=[d("td",{colspan:"3",class:"px-4 py-2 text-retro-yellow bg-retro-panel text-center"}," Diff truncated — file has more than 10,000 lines ",-1)])])):H("",!0),(v(!0),y($e,null,Ye(r.content.lines,(h,f)=>(v(),y("tr",{key:f,class:Ze({"diff-add":h.type==="add","diff-delete":h.type==="delete","diff-context":h.type==="context","diff-header":h.type==="header"})},[h.type==="header"?(v(),y("td",pZ,_(h.content),1)):(v(),y($e,{key:1},[d("td",mZ,_(h.oldLineNumber??""),1),d("td",gZ,_(h.newLineNumber??""),1),d("td",OZ,[h.type==="add"?(v(),y("span",vZ,"+")):h.type==="delete"?(v(),y("span",bZ,"-")):(v(),y("span",xZ," ")),Xe(" "+_(h.content),1)])],64))],2))),128))])])):(v(),y("div",yZ," Failed to load diff content. "))])],544))}}),wZ=ci(kZ,[["__scopeId","data-v-74bf9bf3"]]),SZ={class:"fixed inset-0 z-50 flex items-center justify-center"},$Z={class:"relative w-[90vw] max-w-lg bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},CZ={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},QZ={class:"flex items-center gap-2"},PZ={class:"text-sm font-mono text-retro-text"},TZ={class:"p-6 overflow-y-auto max-h-[70vh] space-y-6"},MZ={key:0},AZ={class:"space-y-6"},_Z={class:"space-y-1.5"},RZ=["value","checked","onChange"],BZ={class:"flex-1"},ZZ={class:"text-sm font-mono text-retro-text"},EZ={class:"text-xs text-retro-muted leading-tight"},DZ={class:"text-xs font-mono text-retro-muted"},LZ={class:"text-xs text-retro-muted mb-3"},XZ=["disabled"],IZ={class:"space-y-1.5"},VZ=["value","checked","onChange"],zZ={class:"flex-1"},NZ={class:"text-sm font-mono text-retro-text"},WZ={class:"text-xs text-retro-muted leading-tight"},qZ={key:1,class:"space-y-4"},jZ={class:"space-y-1.5"},YZ=["checked"],FZ=["checked"],UZ={class:"flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel"},GZ={class:"text-xs font-mono text-retro-cyan"},HZ=Ve({__name:"SettingsModal",emits:["close"],setup(r,{emit:e}){const t=e,n=bo(),s=v1(),i=vo(),o=T("main"),a=T(!1),l=ee(()=>s.public.appVersion||"unknown"),c=[{value:"dark",label:"Dark",description:"Retro terminal theme with dark backgrounds"},{value:"light",label:"Light",description:"Bright theme for well-lit environments"}],u=[{value:"plan",label:Es.plan,description:Zo.plan,icon:Pu,color:"text-retro-cyan"},{value:"ask",label:Es.ask,description:Zo.ask,icon:Tu,color:"text-retro-green"},{value:"auto",label:Es.auto,description:Zo.auto,icon:Yp,color:"text-retro-yellow"},{value:"bypass",label:Es.bypass,description:Zo.bypass,icon:Mu,color:"text-retro-red"}],{data:h,pending:f,error:p}=bc("ai-providers",()=>$fetch("/api/ai/providers"),{server:!1}),g=ee(()=>h.value?.providers??[]),O=ee(()=>{const E=p.value;return E?E instanceof Error?E.message:String(E):null}),{data:x,refresh:b}=bc("spec-search-status",()=>$fetch("/api/specs/status"),{server:!1,default:()=>null}),k=ee(()=>{const E=x.value;return E?E.isIndexing?`Indexing (${E.currentJob||"running"})`:E.schedulerActive?`Indexed ${E.fileCount} files / ${E.chunkCount} chunks`:"Scheduler inactive":"Status unavailable"});Ot(()=>{n.hydrate()});const $=E=>{n.setProviderSelection(E),i.success("Settings saved")},P=()=>{o.value="provider"},R=()=>{o.value="main"},V=E=>{n.setTheme(E),i.success("Settings saved")},L=E=>{n.setPermissionMode(E),i.success("Settings saved")},ae=E=>{n.setAutoGenerateCommitMessages(E),i.success("Settings saved")},ce=()=>{t("close")},Oe=async()=>{if(!a.value){a.value=!0;try{const E=await $fetch("/api/specs/reindex",{method:"POST",body:{}});!E.success&&E.status==="already-indexing"?i.info("Spec index is already running"):i.success("Spec reindex started"),await b()}catch(E){i.error(E instanceof Error?E.message:"Failed to start spec reindex")}finally{a.value=!1}}},q=E=>{E.key==="Escape"&&t("close")};Ot(()=>{window.addEventListener("keydown",q)}),Ct(()=>{window.removeEventListener("keydown",q)});let X=null;return Ot(()=>{X=_u(()=>{b()},5e3)}),Ct(()=>{X&&clearInterval(X)}),(E,U)=>(v(),be(Pr,{to:"body"},[d("div",SZ,[d("div",{class:"absolute inset-0 bg-black/70",onClick:ce}),d("div",$Z,[d("div",CZ,[d("div",QZ,[o.value==="provider"?(v(),y("button",{key:0,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Back",onClick:R},[te(m(N1),{class:"h-4 w-4"})])):H("",!0),d("h2",PZ,_(o.value==="provider"?"AI Provider Settings":"Settings"),1)]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:U[0]||(U[0]=j=>t("close"))},[te(m(Qt),{class:"h-4 w-4"})])]),d("div",TZ,[o.value==="main"?(v(),y("section",MZ,[d("div",AZ,[d("section",null,[U[3]||(U[3]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Theme",-1)),U[4]||(U[4]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose between dark and light appearance. ",-1)),d("div",_Z,[(v(),y($e,null,Ye(c,j=>d("label",{key:j.value,class:Ze(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).theme===j.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"theme",value:j.value,checked:m(n).theme===j.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:W=>V(j.value)},null,40,RZ),d("div",BZ,[d("div",ZZ,_(j.label),1),d("div",EZ,_(j.description),1)])],2)),64))])]),U[11]||(U[11]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[U[6]||(U[6]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider",-1)),U[7]||(U[7]=d("p",{class:"text-xs text-retro-muted mb-3"}," Configure provider and model settings for new conversations. ",-1)),d("button",{type:"button",class:"w-full flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel hover:border-retro-muted transition-colors",onClick:P},[U[5]||(U[5]=d("span",{class:"text-sm font-mono text-retro-text"},"Provider Settings",-1)),d("span",DZ,_(m(n).providerSelection.providerId)+" / "+_(m(n).providerSelection.modelKey),1)])]),U[12]||(U[12]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[U[8]||(U[8]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec Search Index",-1)),d("p",LZ,_(k.value),1),d("button",{type:"button",class:"w-full flex items-center justify-center px-3 py-2 rounded border border-retro-border bg-retro-panel text-retro-text hover:border-retro-muted transition-colors disabled:opacity-60",disabled:a.value||m(x)?.isIndexing,onClick:Oe},_(a.value?"Starting reindex...":"Reindex Specs"),9,XZ)]),U[13]||(U[13]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[U[9]||(U[9]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Default Permission Mode",-1)),U[10]||(U[10]=d("p",{class:"text-xs text-retro-muted mb-3"}," Set the default permission mode for all new chat conversations. ",-1)),d("div",IZ,[(v(),y($e,null,Ye(u,j=>d("label",{key:j.value,class:Ze(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).permissionMode===j.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"permission-mode",value:j.value,checked:m(n).permissionMode===j.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:W=>L(j.value)},null,40,VZ),(v(),be(Fs(j.icon),{class:Ze(["w-4 h-4 flex-shrink-0",j.color])},null,8,["class"])),d("div",zZ,[d("div",NZ,_(j.label),1),d("div",WZ,_(j.description),1)])],2)),64))])]),U[14]||(U[14]=d("div",{class:"border-t border-retro-border"},null,-1))])])):(v(),y("section",qZ,[U[15]||(U[15]=d("div",null,[d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider"),d("p",{class:"text-xs text-retro-muted mb-3"}," Choose which registered provider and model powers new conversations. ")],-1)),te(L1,{providers:g.value,selected:m(n).providerSelection,permissionMode:m(n).permissionMode,pending:m(f),errorMessage:O.value,onSelect:$},null,8,["providers","selected","permissionMode","pending","errorMessage"])])),U[23]||(U[23]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[U[18]||(U[18]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Commit Messages",-1)),U[19]||(U[19]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose whether to use AI to generate commit messages automatically. ",-1)),d("div",jZ,[d("label",{class:Ze(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).autoGenerateCommitMessages?"border-retro-border bg-retro-panel hover:border-retro-muted":"border-retro-cyan bg-retro-cyan/10"]])},[d("input",{type:"radio",name:"commit-messages",value:!1,checked:!m(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:U[1]||(U[1]=j=>ae(!1))},null,40,YZ),U[16]||(U[16]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"Template (Recommended)"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Simple template-based messages. No token usage.")],-1))],2),d("label",{class:Ze(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[m(n).autoGenerateCommitMessages?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"commit-messages",value:!0,checked:m(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:U[2]||(U[2]=j=>ae(!0))},null,40,FZ),U[17]||(U[17]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"AI-Generated"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Uses Claude Haiku to create meaningful commit messages. ~300-500 tokens per commit.")],-1))],2)])]),U[24]||(U[24]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[U[21]||(U[21]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec-Cat",-1)),U[22]||(U[22]=d("p",{class:"text-xs text-retro-muted mb-3"}," Application version. ",-1)),d("div",UZ,[U[20]||(U[20]=d("span",{class:"text-sm font-mono text-retro-text"},"Version",-1)),d("span",GZ,_(l.value),1)])])])])])]))}}),KZ={class:"fixed top-4 right-4 z-50 flex flex-col gap-2 max-w-sm"},JZ={class:"flex-1 text-sm font-mono text-retro-text"},e6=["onClick"],t6=Ve({__name:"ToastContainer",setup(r){const{toasts:e,remove:t}=vo(),n={success:{bg:"bg-retro-green/20",icon:"text-retro-green",border:"border-retro-green/50"},error:{bg:"bg-retro-red/20",icon:"text-retro-red",border:"border-retro-red/50"},info:{bg:"bg-retro-cyan/20",icon:"text-retro-cyan",border:"border-retro-cyan/50"},warning:{bg:"bg-retro-yellow/20",icon:"text-retro-yellow",border:"border-retro-yellow/50"}},s=i=>{switch(i){case"success":return $u;case"error":return Oo;case"warning":return In;default:return ov}};return(i,o)=>(v(),be(Pr,{to:"body"},[d("div",KZ,[te(b1,{"enter-active-class":"transition-all duration-300 ease-out","leave-active-class":"transition-all duration-200 ease-in","enter-from-class":"opacity-0 translate-x-4","enter-to-class":"opacity-100 translate-x-0","leave-from-class":"opacity-100 translate-x-0","leave-to-class":"opacity-0 translate-x-4"},{default:ht(()=>[(v(!0),y($e,null,Ye(m(e),a=>(v(),y("div",{key:a.id,class:Ze(["flex items-start gap-3 p-3 rounded-lg border shadow-lg",[n[a.type].bg,n[a.type].border]])},[(v(),be(Fs(s(a.type)),{class:Ze(["h-5 w-5 flex-shrink-0 mt-0.5",n[a.type].icon])},null,8,["class"])),d("p",JZ,_(a.message),1),d("button",{type:"button",class:"p-0.5 rounded text-retro-muted hover:text-retro-text transition-colors",onClick:l=>m(t)(a.id)},[te(m(Qt),{class:"h-4 w-4"})],8,e6)],2))),128))]),_:1})])]))}}),r6=Ve({__name:"SplashScreen",setup(r){const e=T(!0),t=T(!1);return Ot(()=>{setTimeout(()=>{t.value=!0,setTimeout(()=>{e.value=!1},600)},1800)}),(n,s)=>(v(),be(Pr,{to:"body"},[e.value?(v(),y("div",{key:0,class:Ze(["fixed inset-0 z-[9999] flex items-center justify-center bg-retro-black transition-opacity duration-500",{"opacity-0":t.value}])},[...s[0]||(s[0]=[d("div",{class:"flex flex-col items-center gap-6"},[d("pre",{class:"text-retro-cyan font-mono text-xs leading-tight select-none splash-glow"},` ____ ____ _
80
- / ___| _ __ ___ ___ / ___|__ _| |_
81
- \\___ \\| '_ \\ / _ \\/ __|| | / _\` | __|
82
- ___) | |_) | __/ (__ | |__| (_| | |_
83
- |____/| .__/ \\___|\\___| \\____\\__,_|\\__|
84
- |_|
85
- `),d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-block w-2 h-2 rounded-full bg-retro-cyan animate-pulse"}),d("span",{class:"text-retro-muted font-mono text-xs tracking-widest uppercase"},"initializing")])],-1)])],2)):H("",!0)]))}}),n6=ci(r6,[["__scopeId","data-v-7fddb179"]]);let zt=null,Rs=null,os=null;const s6=5e3,i6=500,o6=1e3,Oc=5;let dr=null;const as=new Map,ls=new Map,ha=new Map;function a6(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function l6(){const r=vr();async function e(){console.log("[GlobalNotifications] Executing debounced refresh");const g=await r.refreshServerConversations();console.log("[GlobalNotifications] Refresh result:",g);const O=[];for(const[x,b]of as)as.delete(x),n(x,b)||O.push([x,b]);for(const[x,b]of O){const k=(ls.get(x)??0)+1;if(k<=Oc){ls.set(x,k),console.log(`[GlobalNotifications] Scheduling retry ${k}/${Oc} for ${x}`);const $=setTimeout(()=>{ha.delete(x),as.set(x,b),t()},o6*k);ha.set(x,$)}else console.warn(`[GlobalNotifications] Gave up streaming setup for ${x} after ${Oc} retries`),ls.delete(x)}}function t(){os&&clearTimeout(os),os=setTimeout(()=>{os=null,e()},i6)}function n(g,O){if(!zt||zt.readyState!==WebSocket.OPEN)return!1;if(r.isConversationStreaming(g))return ls.delete(g),!0;const x=r.conversations.find($=>$.id===g);if(!x)return console.warn("[GlobalNotifications] Conversation not found for streaming:",g),!1;ls.delete(g),x.messages.length===0&&O&&r.addUserMessage(O,g);const b=[...x.messages].reverse().find($=>$.role==="assistant");if(b)return r.resetMessageForReplay(b.id,g),r.startConversationStreaming(g),dr={conversationId:g,messageId:b.id,currentTextBlockId:null,currentToolBlockId:null,currentToolInputJson:"",isReplaying:!1,replayBuffer:[]},zt.send(JSON.stringify({type:"subscribe",conversationId:g,cursor:0})),console.log("[GlobalNotifications] Resumed server job streaming (existing msg):",g),!0;const k=r.addAssistantMessage(g);return r.initContentBlocks(k.id,g),r.startConversationStreaming(g),dr={conversationId:g,messageId:k.id,currentTextBlockId:null,currentToolBlockId:null,currentToolInputJson:"",isReplaying:!1,replayBuffer:[]},zt.send(JSON.stringify({type:"subscribe",conversationId:g,cursor:0})),console.log("[GlobalNotifications] Subscribed to server job streaming:",g),!0}function s(g){try{const O=JSON.parse(g.data);if(O.type==="notification"){i(O);return}dr&&o(O)}catch{}}function i(g){if(console.log("[GlobalNotifications] Received:",g.notificationEvent,g.conversationId),g.notificationEvent==="job_created"){as.set(g.conversationId,g.message||""),t();return}if(g.notificationEvent==="job_persisted"){dr?.conversationId===g.conversationId&&(r.endConversationStreaming(g.conversationId),dr=null),as.delete(g.conversationId),ls.delete(g.conversationId),t();return}if(g.notificationEvent!=="job_completed"&&g.notificationEvent==="conversation_archived"){t();return}}function o(g){const O=dr,x=O.conversationId;if(g.type==="replay_start"){O.isReplaying=!0,O.replayBuffer=[];return}if(g.type==="replay_end"){a(O),O.isReplaying=!1,O.replayBuffer=[];return}if(O.isReplaying){(g.type==="ui_event"||g.type==="done"||g.type==="error")&&O.replayBuffer.push(g);return}if(g.type==="ui_event"&&g.event){c(O,g.event,x);return}if(g.type!=="done"&&g.type==="error"){r.updateMessage(O.messageId,{status:"error"},x),r.setSessionError(g.error||"Server job error",x),r.endConversationStreaming(x),dr=null;return}}function a(g){const O=[];let x="",b=null,k=null,$="";for(const P of g.replayBuffer){if(P.type!=="ui_event"||!P.event)continue;const R=P.event;switch(R.type){case"block_start":if(R.blockType==="text"){const V=R.blockId||jt();O.push({id:V,type:"text",text:R.text||""}),b=V,k=null,R.text&&(x+=R.text)}else if(R.blockType==="tool_use"&&R.toolUseId&&R.name){const V=R.blockId||jt();O.push({id:V,type:"tool_use",toolUseId:R.toolUseId,name:R.name,input:{},inputSummary:"",status:"running"}),b=null,k=R.index??0,$=""}break;case"block_delta":if(R.text&&b){const V=O.find(L=>L.id===b);V&&V.type==="text"&&(V.text+=R.text,x+=R.text)}R.partialJson&&k!==null&&($+=R.partialJson);break;case"block_end":if(b&&(b=null),k!==null){const V=[...O].reverse().find(L=>L.type==="tool_use");if(V){let L={};try{L=JSON.parse($)}catch{}V.input=L,V.inputSummary=l(L),V.status="pending"}k=null,$=""}break;case"tool_result":{const V=[...O].reverse().find(L=>L.type==="tool_use"&&L.toolUseId===R.toolUseId);V&&(V.status=R.isError?"error":"complete"),O.push({id:jt(),type:"tool_result",toolUseId:R.toolUseId,content:R.content||"",isError:!!R.isError});break}}}O.length>0&&r.batchSetMessageBlocks(g.messageId,O,x,"streaming",g.conversationId),g.currentTextBlockId=b,g.currentToolBlockId=null,g.currentToolInputJson="",console.log(`[GlobalNotifications] Replay batch: ${g.replayBuffer.length} events → ${O.length} blocks`)}function l(g){return g.file_path?String(g.file_path):g.path?String(g.path):g.command?String(g.command).slice(0,50):""}function c(g,O,x){switch(O.type){case"block_start":{if(O.blockType==="text"){const b=O.blockId||jt(),k={id:b,type:"text",text:O.text||""};r.appendContentBlock(g.messageId,k,x),g.currentTextBlockId=b,g.currentToolBlockId=null,O.text&&r.appendToMessage(g.messageId,O.text,x)}else if(O.blockType==="tool_use"&&O.toolUseId&&O.name){const b=O.blockId||jt(),k={id:b,type:"tool_use",toolUseId:O.toolUseId,name:O.name,input:{},inputSummary:"",status:"running"};r.appendContentBlock(g.messageId,k,x),g.currentToolBlockId=b,g.currentToolInputJson="",g.currentTextBlockId=null}break}case"block_delta":{O.text&&g.currentTextBlockId&&(r.updateBlockById(g.messageId,g.currentTextBlockId,b=>{b.type==="text"&&(b.text+=O.text)},x),r.appendToMessage(g.messageId,O.text,x)),O.partialJson&&g.currentToolBlockId&&(g.currentToolInputJson+=O.partialJson);break}case"block_end":{if(g.currentTextBlockId&&(g.currentTextBlockId=null),g.currentToolBlockId){const b=g.currentToolBlockId,k=g.currentToolInputJson;r.updateBlockById(g.messageId,b,$=>{if($.type==="tool_use"){const P=$;let R={};try{R=JSON.parse(k)}catch{}P.input=R,P.inputSummary=l(R),P.status="pending"}},x),g.currentToolBlockId=null,g.currentToolInputJson=""}break}case"tool_result":{if(O.toolUseId){const b=r.findToolUseBlock(g.messageId,O.toolUseId,x);b&&r.updateBlockById(g.messageId,b.id,$=>{$.type==="tool_use"&&($.status=O.isError?"error":"complete")},x);const k={id:jt(),type:"tool_result",toolUseId:O.toolUseId,content:O.content||"",isError:!!O.isError};r.appendContentBlock(g.messageId,k,x)}break}}}function u(){if(typeof window>"u"||zt&&(zt.readyState===WebSocket.OPEN||zt.readyState===WebSocket.CONNECTING))return;const g=a6();zt=new WebSocket(g),zt.onopen=()=>{console.log("[GlobalNotifications] WebSocket connected")},zt.onmessage=s,zt.onclose=O=>{console.log("[GlobalNotifications] WebSocket closed",{code:O.code,reason:O.reason}),zt=null,dr&&(r.endConversationStreaming(dr.conversationId),dr=null),h()},zt.onerror=O=>{console.warn("[GlobalNotifications] WebSocket error",O)}}function h(){Rs||(Rs=setTimeout(()=>{Rs=null,u()},s6))}function f(){Rs&&(clearTimeout(Rs),Rs=null),os&&(clearTimeout(os),os=null);for(const g of ha.values())clearTimeout(g);ha.clear(),ls.clear(),as.clear(),dr&&(r.endConversationStreaming(dr.conversationId),dr=null),zt&&(zt.close(),zt=null)}async function p(){try{const O=(await $fetch("/api/jobs")).filter(x=>x.source!=="user"&&(x.status==="running"||x.status==="waiting_permission"||x.status==="queued"||x.status==="completed"&&x.eventCount>0));if(O.length===0)return;await r.refreshServerConversations();for(const x of O){if(r.isConversationStreaming(x.conversationId))continue;const b=r.conversations.find(P=>P.id===x.conversationId);if(!b)continue;const k=[...b.messages].reverse().find(P=>P.role==="assistant");if(k&&(k.status==="complete"||k.status==="error"||k.status==="stopped"))continue;console.log("[GlobalNotifications] Resuming active server job:",x.id,"for conversation:",x.conversationId),n(x.conversationId,"")||(console.log("[GlobalNotifications] WS not ready for resume, queuing for retry:",x.conversationId),as.set(x.conversationId,""),t())}}catch(g){console.warn("[GlobalNotifications] Failed to check for active server jobs:",g)}}return Ot(()=>{u(),p()}),Ct(()=>{f()}),{connect:u,disconnect:f}}const c6={class:"flex h-screen min-w-[320px] overflow-x-auto bg-retro-black text-retro-text"},u6={class:"flex flex-col overflow-hidden",style:{flex:"3"}},h6={class:"flex-shrink-0 h-14 flex items-center justify-between px-4 border-b border-retro-border bg-retro-panel"},d6={class:"flex items-center gap-2 min-w-0"},f6={key:0,class:"text-xs text-retro-muted font-mono truncate"},p6={class:"flex items-center gap-1"},m6=["title"],g6={class:"flex-1 min-h-0 overflow-y-auto"},O6={class:"relative flex min-w-0",style:{flex:"7"}},v6={key:0,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},b6={key:1,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},x6={key:2,class:"absolute inset-0 z-30 flex flex-col overflow-hidden border-l border-retro-border bg-retro-black"},R6=Ve({__name:"default",setup(r){const e=a1(),t=bo(),n=vr(),s=ul(),{isDark:i,toggleTheme:o}=M1(),{tryResumeStreaming:a}=Cl();l6();const l=ee(()=>s.diffViewerFile!==null),c=ee(()=>e.isChatFullscreen),u=ee(()=>c.value),h=ee(()=>c.value?7:3),f=T(!1),p=T(""),g=ee(()=>{if(!p.value)return"";const b=p.value.replace(/\/+$/,"").split("/");return b[b.length-1]||""}),O=ee(()=>g.value?`spec cat :: ${g.value}`:"spec cat");x1(()=>({title:O.value}));const x=()=>{typeof window<"u"&&e.updateViewport(window.innerWidth)};return Ot(async()=>{typeof window<"u"&&(e.updateViewport(window.innerWidth),window.addEventListener("resize",x)),await t.hydrate(),await n.initialize(),await n.loadConversations(),n.activeConversationId&&a(n.activeConversationId);try{const b=await $fetch("/api/cwd");p.value=b.cwd}catch{p.value=""}}),Ct(()=>{typeof window<"u"&&window.removeEventListener("resize",x)}),(b,k)=>{const $=kS;return v(),y("div",c6,[d("div",u6,[d("div",h6,[d("div",d6,[k[4]||(k[4]=d("img",{alt:"SpecCat",src:wS,class:"w-5 h-5 text-retro-cyan mb-1"},null,-1)),k[5]||(k[5]=d("span",{class:"text-sm font-bold text-retro-cyan font-mono uppercase tracking-wider flex-shrink-0"},"SPECCAT",-1)),g.value?(v(),y("span",f6,"/ "+_(g.value),1)):H("",!0)]),d("div",p6,[d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:m(i)?"Switch to light theme":"Switch to dark theme",onClick:k[0]||(k[0]=(...P)=>m(o)&&m(o)(...P))},[m(i)?(v(),be(m(A1),{key:0,class:"w-5 h-5"})):(v(),be(m(_1),{key:1,class:"w-5 h-5"}))],8,m6),d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:"Settings",onClick:k[1]||(k[1]=P=>f.value=!0)},[te(m(Up),{class:"w-5 h-5"})])])]),d("div",g6,[te($,{"working-directory":p.value},null,8,["working-directory"])])]),d("div",O6,[u.value?H("",!0):(v(),y("div",v6,[te(SR)])),u.value?H("",!0):(v(),y("div",b6,[te(HR)])),d("div",{class:"flex flex-col overflow-hidden border-l border-retro-border",style:nr({flex:h.value})},[te(eZ)],4),l.value?(v(),y("div",x6,[te(wZ,{file:m(s).diffViewerFile,"commit-hash":m(s).diffViewerCommitHash,content:m(s).diffViewerContent,loading:m(s).diffViewerLoading,onClose:k[2]||(k[2]=P=>m(s).closeFileDiff())},null,8,["file","commit-hash","content","loading"])])):H("",!0)]),f.value?(v(),be(HZ,{key:0,onClose:k[3]||(k[3]=P=>f.value=!1)})):H("",!0),te(t6),te(n6),Ep(b.$slots,"default")])}}});export{R6 as default};