pneuma-skills 2.4.0 → 2.4.1

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 (133) hide show
  1. package/README.md +3 -0
  2. package/dist/assets/{EditorPanel-C84U9Y4W.js → EditorPanel-CB8q2Gp-.js} +1 -1
  3. package/dist/assets/{Launcher-T3ew82ZU.js → Launcher-D3z6r9ep.js} +1 -1
  4. package/dist/assets/{ScaffoldConfirm-Dl5Cn2GS.js → ScaffoldConfirm-CbPBkfGU.js} +1 -1
  5. package/dist/assets/{TerminalPanel-lt5lifk3.js → TerminalPanel-DiXKBrtW.js} +1 -1
  6. package/dist/assets/{ar-SA-G6X2FPQ2-CGS6_CCD.js → ar-SA-G6X2FPQ2-D-Uql7ST.js} +1 -1
  7. package/dist/assets/{arc-C9u3I-R6.js → arc-CsHxsIou.js} +1 -1
  8. package/dist/assets/{az-AZ-76LH7QW2-886ow9UL.js → az-AZ-76LH7QW2-88YRNGOI.js} +1 -1
  9. package/dist/assets/{bg-BG-XCXSNQG7-f6fqw81F.js → bg-BG-XCXSNQG7-BBPNgx5k.js} +1 -1
  10. package/dist/assets/{blockDiagram-38ab4fdb-BM9Gnx8t.js → blockDiagram-38ab4fdb-BJgkAOqU.js} +1 -1
  11. package/dist/assets/{bn-BD-2XOGV67Q-DIitb6Mt.js → bn-BD-2XOGV67Q-DyWO1RuT.js} +1 -1
  12. package/dist/assets/{c4Diagram-3d4e48cf-B2SwJlfh.js → c4Diagram-3d4e48cf-DM9NGYg0.js} +1 -1
  13. package/dist/assets/{ca-ES-6MX7JW3Y-Dn-qHSYs.js → ca-ES-6MX7JW3Y-CWOR2w6b.js} +1 -1
  14. package/dist/assets/channel-D9CTDLIO.js +1 -0
  15. package/dist/assets/{classDiagram-70f12bd4-D16bdelF.js → classDiagram-70f12bd4-CcBBopkZ.js} +1 -1
  16. package/dist/assets/{classDiagram-v2-f2320105-Bl5pT1_O.js → classDiagram-v2-f2320105-BpImRYEh.js} +1 -1
  17. package/dist/assets/clone-C3Z7359X.js +1 -0
  18. package/dist/assets/{createText-2e5e7dd3-BNHkwSO1.js → createText-2e5e7dd3-CCN_VhuC.js} +1 -1
  19. package/dist/assets/{cs-CZ-2BRQDIVT-DRWMqXQg.js → cs-CZ-2BRQDIVT-DF9iWITY.js} +1 -1
  20. package/dist/assets/{da-DK-5WZEPLOC-B-krj1o4.js → da-DK-5WZEPLOC-Bu7X6bJr.js} +1 -1
  21. package/dist/assets/{de-DE-XR44H4JA-Dl7LtLI8.js → de-DE-XR44H4JA-fXKLw5dt.js} +1 -1
  22. package/dist/assets/{download-Ce1Cbj42.js → download-DSZx-hXD.js} +1 -1
  23. package/dist/assets/{edges-e0da2a9e-CQXfrTEa.js → edges-e0da2a9e-joi-EV-7.js} +1 -1
  24. package/dist/assets/{el-GR-BZB4AONW-C9eTNnbV.js → el-GR-BZB4AONW-zR5VCAGN.js} +1 -1
  25. package/dist/assets/{erDiagram-9861fffd-qLMOfvfR.js → erDiagram-9861fffd-CYik2cLN.js} +1 -1
  26. package/dist/assets/{es-ES-U4NZUMDT-CCIdub5_.js → es-ES-U4NZUMDT-BrKimEtJ.js} +1 -1
  27. package/dist/assets/{eu-ES-A7QVB2H4-BUcxE0jl.js → eu-ES-A7QVB2H4-Cpy4mcMY.js} +1 -1
  28. package/dist/assets/{fa-IR-HGAKTJCU-0m2lXWrJ.js → fa-IR-HGAKTJCU-BjdFvr9V.js} +1 -1
  29. package/dist/assets/{fi-FI-Z5N7JZ37-FG1vPRq8.js → fi-FI-Z5N7JZ37-xSAvKcGs.js} +1 -1
  30. package/dist/assets/{flowDb-956e92f1-Cf_fBIki.js → flowDb-956e92f1-Cz8uYy04.js} +1 -1
  31. package/dist/assets/{flowDiagram-66a62f08-DY4lzIQx.js → flowDiagram-66a62f08-DcAslDhr.js} +1 -1
  32. package/dist/assets/flowDiagram-v2-96b9c2cf-B7cz7YqH.js +1 -0
  33. package/dist/assets/{flowchart-elk-definition-4a651766-BcqMpkbf.js → flowchart-elk-definition-4a651766-CHIQFdVx.js} +1 -1
  34. package/dist/assets/{fr-FR-RHASNOE6-xqWqaR4c.js → fr-FR-RHASNOE6-BlVJqNAx.js} +1 -1
  35. package/dist/assets/{ganttDiagram-c361ad54-DVWtQ-dN.js → ganttDiagram-c361ad54-NEG-yYJK.js} +1 -1
  36. package/dist/assets/{gitGraphDiagram-72cf32ee-Bq6iy5C4.js → gitGraphDiagram-72cf32ee-CWOOg3lt.js} +1 -1
  37. package/dist/assets/{gl-ES-HMX3MZ6V-BBrT7Xkb.js → gl-ES-HMX3MZ6V-e3uU0p2U.js} +1 -1
  38. package/dist/assets/{graph-Btgvy9aQ.js → graph-Bl6agiRQ.js} +1 -1
  39. package/dist/assets/{he-IL-6SHJWFNN-oGku_1aq.js → he-IL-6SHJWFNN-BdPmLWx2.js} +1 -1
  40. package/dist/assets/{hi-IN-IWLTKZ5I-BhJdQyrY.js → hi-IN-IWLTKZ5I-DtmS4ihy.js} +1 -1
  41. package/dist/assets/{hu-HU-A5ZG7DT2-BH6kVi_z.js → hu-HU-A5ZG7DT2-_MajMIlj.js} +1 -1
  42. package/dist/assets/{id-ID-SAP4L64H-KunqZ2d9.js → id-ID-SAP4L64H-CJ6owq_u.js} +1 -1
  43. package/dist/assets/{index-3862675e-DmlmoWMD.js → index-3862675e-BYt7lPIe.js} +1 -1
  44. package/dist/assets/index-CISUDHeQ.js +1 -0
  45. package/dist/assets/{index-BD_Lc77V.js → index-DI8F2A84.js} +2 -2
  46. package/dist/assets/{index-Z0w0hw1v.js → index-DnIbExpO.js} +1 -1
  47. package/dist/assets/{index-BYp_MKF9.js → index-rehddqXW.js} +4 -4
  48. package/dist/assets/{index-BYB2MdZD.js → index-w_6OHgkJ.js} +1 -1
  49. package/dist/assets/{infoDiagram-f8f76790-DBHfIJrX.js → infoDiagram-f8f76790-C6gkj03j.js} +1 -1
  50. package/dist/assets/{it-IT-JPQ66NNP-BeEPGZwd.js → it-IT-JPQ66NNP-D5N_r_M2.js} +1 -1
  51. package/dist/assets/{ja-JP-DBVTYXUO-rAZLfqmK.js → ja-JP-DBVTYXUO-C6YtKAz4.js} +1 -1
  52. package/dist/assets/{journeyDiagram-49397b02-UPlQZF4Z.js → journeyDiagram-49397b02-DdWewmTT.js} +1 -1
  53. package/dist/assets/{kaa-6HZHGXH3-DkxFYwpV.js → kaa-6HZHGXH3-3iNUVIUt.js} +1 -1
  54. package/dist/assets/{kab-KAB-ZGHBKWFO-Ba6ln9uI.js → kab-KAB-ZGHBKWFO-uCIp2w2T.js} +1 -1
  55. package/dist/assets/{kk-KZ-P5N5QNE5-B4h3ImLr.js → kk-KZ-P5N5QNE5-CuXE16lz.js} +1 -1
  56. package/dist/assets/{km-KH-HSX4SM5Z-BzZyYX5r.js → km-KH-HSX4SM5Z-BXwLDxc2.js} +1 -1
  57. package/dist/assets/{ko-KR-MTYHY66A-BXi_eaQo.js → ko-KR-MTYHY66A-DHfuD2F8.js} +1 -1
  58. package/dist/assets/{ku-TR-6OUDTVRD-CSviv5CP.js → ku-TR-6OUDTVRD-C4gA1xsL.js} +1 -1
  59. package/dist/assets/{layout-DvUfw9fK.js → layout-DXGK_zV3.js} +1 -1
  60. package/dist/assets/{line-CbjAmkEU.js → line-DHZ6mcbj.js} +1 -1
  61. package/dist/assets/{lt-LT-XHIRWOB4-Q_Ku_myM.js → lt-LT-XHIRWOB4-U9TbxYms.js} +1 -1
  62. package/dist/assets/{lv-LV-5QDEKY6T-D-U4_Vb8.js → lv-LV-5QDEKY6T-C3R8l4ad.js} +1 -1
  63. package/dist/assets/{manifest-B-6U-Xc5.js → manifest-DzsgJMhE.js} +11 -3
  64. package/dist/assets/{mindmap-definition-fc14e90a-HJCPu6kM.js → mindmap-definition-fc14e90a-7yCFbH6U.js} +1 -1
  65. package/dist/assets/{mr-IN-CRQNXWMA-BuDJF_tf.js → mr-IN-CRQNXWMA-BQLwGl8L.js} +1 -1
  66. package/dist/assets/{my-MM-5M5IBNSE-Ci368-lI.js → my-MM-5M5IBNSE-0RMfpeLG.js} +1 -1
  67. package/dist/assets/{nb-NO-T6EIAALU-DFf8qpMQ.js → nb-NO-T6EIAALU-BsT5Suhk.js} +1 -1
  68. package/dist/assets/{nl-NL-IS3SIHDZ-DqdEv1SL.js → nl-NL-IS3SIHDZ-sFgNSJBW.js} +1 -1
  69. package/dist/assets/{nn-NO-6E72VCQL-CqhxsMPB.js → nn-NO-6E72VCQL-3zpmid7k.js} +1 -1
  70. package/dist/assets/{oc-FR-POXYY2M6-CyYquUyf.js → oc-FR-POXYY2M6-DMg9pd3l.js} +1 -1
  71. package/dist/assets/{pa-IN-N4M65BXN-BLckun51.js → pa-IN-N4M65BXN-8SJW1W_R.js} +1 -1
  72. package/dist/assets/{percentages-BXMCSKIN-Cu0bZiEI.js → percentages-BXMCSKIN-C5zxFaN_.js} +7 -7
  73. package/dist/assets/{pica-jIOIY1-I.js → pica-uOY596JV.js} +1 -1
  74. package/dist/assets/{pieDiagram-8a3498a8-B4H49UjW.js → pieDiagram-8a3498a8-DW435VOf.js} +1 -1
  75. package/dist/assets/{pl-PL-T2D74RX3-DXIeULSM.js → pl-PL-T2D74RX3-BokiZ3Ur.js} +1 -1
  76. package/dist/assets/{pneuma-mode-B2LQxLC-.js → pneuma-mode-B9Z3_ctC.js} +1 -1
  77. package/dist/assets/{pneuma-mode-BePjUufG.js → pneuma-mode-C-UXTfua.js} +3 -3
  78. package/dist/assets/{pneuma-mode-BnDDbZ2h.js → pneuma-mode-CyHCgP7L.js} +1 -1
  79. package/dist/assets/{pneuma-mode-B8ylJxAX.js → pneuma-mode-Df0KqliZ.js} +3 -3
  80. package/dist/assets/{pneuma-mode-DaDYxkQU.js → pneuma-mode-Dj8CckCE.js} +1 -1
  81. package/dist/assets/{pneuma-mode-Ku7Plf4V.js → pneuma-mode-DtywuzTD.js} +1 -1
  82. package/dist/assets/{pneuma-mode-DGyctFtu.js → pneuma-mode-wxzP5YJS.js} +1 -1
  83. package/dist/assets/{pt-BR-5N22H2LF-CuAaX2QP.js → pt-BR-5N22H2LF-z901X49t.js} +1 -1
  84. package/dist/assets/{pt-PT-UZXXM6DQ-HcBkAIqC.js → pt-PT-UZXXM6DQ-DFvYapB7.js} +1 -1
  85. package/dist/assets/{quadrantDiagram-120e2f19-BAO9e1D0.js → quadrantDiagram-120e2f19-ZMGG1wKb.js} +1 -1
  86. package/dist/assets/{rasterize-34PCWURX-DOwDkW8y.js → rasterize-34PCWURX-CXrsDq6e.js} +1 -1
  87. package/dist/assets/{requirementDiagram-deff3bca-CFJqKz4U.js → requirementDiagram-deff3bca-QFMzAwCA.js} +1 -1
  88. package/dist/assets/{ro-RO-JPDTUUEW-Aqxxvyf3.js → ro-RO-JPDTUUEW-CFhMfaOR.js} +1 -1
  89. package/dist/assets/{ru-RU-B4JR7IUQ-7E0aCBZq.js → ru-RU-B4JR7IUQ-DuB9gJPI.js} +1 -1
  90. package/dist/assets/{sankeyDiagram-04a897e0-1oeF6NtB.js → sankeyDiagram-04a897e0-m7kqFsEY.js} +1 -1
  91. package/dist/assets/{sequenceDiagram-704730f1-CD6z-Sw-.js → sequenceDiagram-704730f1-N-x_2lni.js} +1 -1
  92. package/dist/assets/{si-LK-N5RQ5JYF-BHm9mNZz.js → si-LK-N5RQ5JYF-CJKgC85H.js} +1 -1
  93. package/dist/assets/{sk-SK-C5VTKIMK-CFILsx6S.js → sk-SK-C5VTKIMK-BjoCTn07.js} +1 -1
  94. package/dist/assets/{sl-SI-NN7IZMDC-DWwmp-mQ.js → sl-SI-NN7IZMDC-Vh80mqRc.js} +1 -1
  95. package/dist/assets/{stateDiagram-587899a1-ZEkRKBBB.js → stateDiagram-587899a1-BcIDhODU.js} +1 -1
  96. package/dist/assets/{stateDiagram-v2-d93cdb3a-Dk55E7si.js → stateDiagram-v2-d93cdb3a-B12sSH6d.js} +1 -1
  97. package/dist/assets/{styles-6aaf32cf-BTmTUG_h.js → styles-6aaf32cf-r3QTjbP8.js} +1 -1
  98. package/dist/assets/{styles-9a916d00-CNAAycsx.js → styles-9a916d00-DCaSoTmx.js} +1 -1
  99. package/dist/assets/{styles-c10674c1-CaOW7LSo.js → styles-c10674c1-Bhhlw65z.js} +1 -1
  100. package/dist/assets/{subset-shared.chunk-CQX82lzn.js → subset-shared.chunk-BsZBkCnG.js} +1 -1
  101. package/dist/assets/{subset-worker.chunk-CqGr7QOT.js → subset-worker.chunk-C-JXVJTN.js} +1 -1
  102. package/dist/assets/{sv-SE-XGPEYMSR-D6B0KxkK.js → sv-SE-XGPEYMSR-DUp_pb8d.js} +1 -1
  103. package/dist/assets/{svgDrawCommon-08f97a94-Chih_ndF.js → svgDrawCommon-08f97a94-YLcEwvRf.js} +1 -1
  104. package/dist/assets/{ta-IN-2NMHFXQM-K2Vmuikn.js → ta-IN-2NMHFXQM-OvdbrUkI.js} +1 -1
  105. package/dist/assets/{th-TH-HPSO5L25-DK6_FR_A.js → th-TH-HPSO5L25-B4Iq9iQi.js} +1 -1
  106. package/dist/assets/{timeline-definition-85554ec2-DeJfuqnC.js → timeline-definition-85554ec2-hMSRqhVV.js} +1 -1
  107. package/dist/assets/{toBlob-Bfj9gwDr.js → toBlob-CIoS3k58.js} +1 -1
  108. package/dist/assets/{toCanvas-gohKuYrN.js → toCanvas-zffaoDDD.js} +1 -1
  109. package/dist/assets/{toImg-DadFIJ67.js → toImg-BD8WGaUF.js} +1 -1
  110. package/dist/assets/{tr-TR-DEFEU3FU-Co8sxLZ8.js → tr-TR-DEFEU3FU-BIbXO5ey.js} +1 -1
  111. package/dist/assets/{uk-UA-QMV73CPH-CHlmwVQG.js → uk-UA-QMV73CPH-D-11gbLT.js} +1 -1
  112. package/dist/assets/{use-resilient-parse-BcHqMenb.js → use-resilient-parse-ByBISmGu.js} +1 -1
  113. package/dist/assets/{vi-VN-M7AON7JQ-jQM1--Jv.js → vi-VN-M7AON7JQ-BuZjmwcH.js} +1 -1
  114. package/dist/assets/{with-selector-OkvL4sGG.js → with-selector-HIW4mFzk.js} +1 -1
  115. package/dist/assets/{xychartDiagram-e933f94c-CLLb28C0.js → xychartDiagram-e933f94c-CjXHJ3oq.js} +1 -1
  116. package/dist/assets/{zh-CN-LNUGB5OW-DAhDen4s.js → zh-CN-LNUGB5OW-DCWOEiF7.js} +1 -1
  117. package/dist/assets/{zh-HK-E62DVLB3-oJESInqt.js → zh-HK-E62DVLB3-DJZe0fC9.js} +1 -1
  118. package/dist/assets/{zh-TW-RAJ6MFWO-DKMaN-a-.js → zh-TW-RAJ6MFWO-DgvwD9nE.js} +1 -1
  119. package/dist/index.html +1 -1
  120. package/modes/illustrate/manifest.ts +11 -3
  121. package/modes/illustrate/seed/blog-heroes/images/doc-architecture.png +0 -0
  122. package/modes/illustrate/seed/blog-heroes/images/doc-modes.png +0 -0
  123. package/modes/illustrate/seed/blog-heroes/images/hero-co-creation.png +0 -0
  124. package/modes/illustrate/seed/blog-heroes/images/hero-launch.png +0 -0
  125. package/modes/illustrate/seed/blog-heroes/images/hero-skills.png +0 -0
  126. package/modes/illustrate/seed/blog-heroes/manifest.json +23 -23
  127. package/modes/illustrate/skill/SKILL.md +6 -2
  128. package/package.json +1 -1
  129. package/dist/assets/channel-BlJcC2Zd.js +0 -1
  130. package/dist/assets/clone-CyQpBepR.js +0 -1
  131. package/dist/assets/flowDiagram-v2-96b9c2cf-A0zNwBOY.js +0 -1
  132. package/dist/assets/index-C84wm3uG.js +0 -1
  133. package/modes/illustrate/seed/blog-heroes/images/doc-getting-started.png +0 -0
package/README.md CHANGED
@@ -40,6 +40,7 @@ When humans and code agents co-create content, they need more than a chat window
40
40
  | **slide** | HTML presentations — content sets, drag-reorder, presenter mode, PDF/image export |
41
41
  | **doc** | Markdown documents with live preview — the simplest mode, a minimal example of the mode system |
42
42
  | **draw** | Diagrams and visual thinking on an [Excalidraw](https://excalidraw.com) canvas |
43
+ | **illustrate** | AI illustration studio — generate and curate visual assets on a row-based canvas with content sets |
43
44
  | **mode-maker** | Create custom modes with AI — fork, play-test, publish |
44
45
  | **evolve** | Evolution Agent — analyze history, propose skill improvements, apply/rollback |
45
46
 
@@ -95,6 +96,7 @@ Modes:
95
96
  slide HTML presentations
96
97
  doc Markdown with live preview
97
98
  draw Excalidraw canvas
99
+ illustrate AI illustration studio
98
100
  mode-maker Create custom modes with AI
99
101
  evolve Launch the Evolution Agent
100
102
  /path/to/mode Load from a local directory
@@ -156,6 +158,7 @@ Three core contracts in `core/types/`:
156
158
  | Desktop | [Electron](https://www.electronjs.org) 35 + electron-builder + electron-updater |
157
159
  | Terminal | [xterm.js](https://xtermjs.org) + Bun native PTY |
158
160
  | Drawing | [Excalidraw](https://excalidraw.com) |
161
+ | Canvas | [React Flow](https://reactflow.dev) (Illustrate mode) |
159
162
  | Agent | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) via `--sdk-url` |
160
163
 
161
164
  ## Acknowledgements
@@ -1,3 +1,3 @@
1
- import{u as SO,r as l,j as r}from"./index-BD_Lc77V.js";import{L as pO,E as R,C as mO,s as gO,t as i,a as hO,b as qO,i as fO,d as U,f as PO,c as $O,e as uO,g as yO,N as xO,I as vO,h as XO,j as S,m as Y,R as kO,k as zO,l as WO,n as RO,o as J,p as bO,q as _O,H as jO}from"./index-BYB2MdZD.js";const UO=1,M=194,OO=195,wO=196,A=197,VO=198,GO=199,EO=200,ZO=2,eO=3,I=201,YO=24,CO=25,FO=49,NO=50,JO=55,AO=56,IO=57,DO=59,LO=60,HO=61,BO=62,KO=63,MO=65,Oe=238,ee=71,ae=241,ie=242,te=243,ne=244,re=245,oe=246,Qe=247,se=248,aO=72,de=249,le=250,ce=251,Te=252,Se=253,pe=254,me=255,ge=256,he=73,qe=77,fe=263,Pe=112,$e=130,ue=151,ye=152,xe=155,f=10,x=13,F=32,b=9,N=35,ve=40,Xe=46,C=123,D=125,iO=39,tO=34,L=92,ke=111,ze=120,We=78,Re=117,be=85,_e=new Set([CO,FO,NO,fe,MO,$e,AO,IO,Oe,BO,KO,aO,he,qe,LO,HO,ue,ye,xe,Pe]);function w(O){return O==f||O==x}function V(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const je=new R((O,e)=>{let a;if(O.next<0)O.acceptToken(GO);else if(e.context.flags&z)w(O.next)&&O.acceptToken(VO,1);else if(((a=O.peek(-1))<0||w(a))&&e.canShift(A)){let t=0;for(;O.next==F||O.next==b;)O.advance(),t++;(O.next==f||O.next==x||O.next==N)&&O.acceptToken(A,-t)}else w(O.next)&&O.acceptToken(wO,1)},{contextual:!0}),Ue=new R((O,e)=>{let a=e.context;if(a.flags)return;let t=O.peek(-1);if(t==f||t==x){let o=0,n=0;for(;;){if(O.next==F)o++;else if(O.next==b)o+=8-o%8;else break;O.advance(),n++}o!=a.indent&&O.next!=f&&O.next!=x&&O.next!=N&&(o<a.indent?O.acceptToken(OO,-n):O.acceptToken(M))}}),z=1,nO=2,p=4,m=8,g=16,h=32;function W(O,e,a){this.parent=O,this.indent=e,this.flags=a,this.hash=(O?O.hash+O.hash<<8:0)+e+(e<<4)+a+(a<<6)}const we=new W(null,0,0);function Ve(O){let e=0;for(let a=0;a<O.length;a++)e+=O.charCodeAt(a)==b?8-e%8:1;return e}const H=new Map([[ae,0],[ie,p],[te,m],[ne,m|p],[re,g],[oe,g|p],[Qe,g|m],[se,g|m|p],[de,h],[le,h|p],[ce,h|m],[Te,h|m|p],[Se,h|g],[pe,h|g|p],[me,h|g|m],[ge,h|g|m|p]].map(([O,e])=>[O,e|nO])),Ge=new mO({start:we,reduce(O,e,a,t){return O.flags&z&&_e.has(e)||(e==ee||e==aO)&&O.flags&nO?O.parent:O},shift(O,e,a,t){return e==M?new W(O,Ve(t.read(t.pos,a.pos)),0):e==OO?O.parent:e==YO||e==JO||e==DO||e==eO?new W(O,0,z):H.has(e)?new W(O,0,H.get(e)|O.flags&z):O},hash(O){return O.hash}}),Ee=new R(O=>{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let a=O.peek(e);if(!(a==F||a==b)){a!=ve&&a!=Xe&&a!=f&&a!=x&&a!=N&&O.acceptToken(UO);return}}}),Ze=new R((O,e)=>{let{flags:a}=e.context,t=a&p?tO:iO,o=(a&m)>0,n=!(a&g),Q=(a&h)>0,d=O.pos;for(;!(O.next<0);)if(Q&&O.next==C)if(O.peek(1)==C)O.advance(2);else{if(O.pos==d){O.acceptToken(eO,1);return}break}else if(n&&O.next==L){if(O.pos==d){O.advance();let c=O.next;c>=0&&(O.advance(),Ye(O,c)),O.acceptToken(ZO);return}break}else if(O.next==L&&!n&&O.peek(1)>-1)O.advance(2);else if(O.next==t&&(!o||O.peek(1)==t&&O.peek(2)==t)){if(O.pos==d){O.acceptToken(I,o?3:1);return}break}else if(O.next==f){if(o)O.advance();else if(O.pos==d){O.acceptToken(I);return}break}else O.advance();O.pos>d&&O.acceptToken(EO)});function Ye(O,e){if(e==ke)for(let a=0;a<2&&O.next>=48&&O.next<=55;a++)O.advance();else if(e==ze)for(let a=0;a<2&&V(O.next);a++)O.advance();else if(e==Re)for(let a=0;a<4&&V(O.next);a++)O.advance();else if(e==be)for(let a=0;a<8&&V(O.next);a++)O.advance();else if(e==We&&O.next==C){for(O.advance();O.next>=0&&O.next!=D&&O.next!=iO&&O.next!=tO&&O.next!=f;)O.advance();O.next==D&&O.advance()}}const Ce=gO({'async "*" "**" FormatConversion FormatSpec':i.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":i.controlKeyword,"in not and or is del":i.operatorKeyword,"from def class global nonlocal lambda":i.definitionKeyword,import:i.moduleKeyword,"with as print":i.keyword,Boolean:i.bool,None:i.null,VariableName:i.variableName,"CallExpression/VariableName":i.function(i.variableName),"FunctionDefinition/VariableName":i.function(i.definition(i.variableName)),"ClassDefinition/VariableName":i.definition(i.className),PropertyName:i.propertyName,"CallExpression/MemberExpression/PropertyName":i.function(i.propertyName),Comment:i.lineComment,Number:i.number,String:i.string,FormatString:i.special(i.string),Escape:i.escape,UpdateOp:i.updateOperator,"ArithOp!":i.arithmeticOperator,BitOp:i.bitwiseOperator,CompareOp:i.compareOperator,AssignOp:i.definitionOperator,Ellipsis:i.punctuation,At:i.meta,"( )":i.paren,"[ ]":i.squareBracket,"{ }":i.brace,".":i.derefOperator,", ;":i.separator}),Fe={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},Ne=pO.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:Ge,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[Ce],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[Ee,Ue,je,Ze,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>Fe[O]||-1}],tokenPrec:7668}),B=new xO,rO=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function k(O){return(e,a,t)=>{if(t)return!1;let o=e.node.getChild("VariableName");return o&&a(o,O),!0}}const Je={FunctionDefinition:k("function"),ClassDefinition:k("class"),ForStatement(O,e,a){if(a){for(let t=O.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name=="in")break}},ImportStatement(O,e){var a,t;let{node:o}=O,n=((a=o.firstChild)===null||a===void 0?void 0:a.name)=="from";for(let Q=o.getChild("import");Q;Q=Q.nextSibling)Q.name=="VariableName"&&((t=Q.nextSibling)===null||t===void 0?void 0:t.name)!="as"&&e(Q,n?"variable":"namespace")},AssignStatement(O,e){for(let a=O.node.firstChild;a;a=a.nextSibling)if(a.name=="VariableName")e(a,"variable");else if(a.name==":"||a.name=="AssignOp")break},ParamList(O,e){for(let a=null,t=O.node.firstChild;t;t=t.nextSibling)t.name=="VariableName"&&(!a||!/\*|AssignOp/.test(a.name))&&e(t,"variable"),a=t},CapturePattern:k("variable"),AsPattern:k("variable"),__proto__:null};function oO(O,e){let a=B.get(e);if(a)return a;let t=[],o=!0;function n(Q,d){let c=O.sliceString(Q.from,Q.to);t.push({label:c,type:d})}return e.cursor(vO.IncludeAnonymous).iterate(Q=>{if(Q.name){let d=Je[Q.name];if(d&&d(Q,n,o)||!o&&rO.has(Q.name))return!1;o=!1}else if(Q.to-Q.from>8192){for(let d of oO(O,Q.node))t.push(d);return!1}}),B.set(e,t),t}const K=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,QO=["String","FormatString","Comment","PropertyName"];function Ae(O){let e=uO(O.state).resolveInner(O.pos,-1);if(QO.indexOf(e.name)>-1)return null;let a=e.name=="VariableName"||e.to-e.from<20&&K.test(O.state.sliceDoc(e.from,e.to));if(!a&&!O.explicit)return null;let t=[];for(let o=e;o;o=o.parent)rO.has(o.name)&&(t=t.concat(oO(O.state.doc,o)));return{options:t,from:a?e.from:O.pos,validFor:K}}const Ie=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),De=[S("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),S("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),S("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),S("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),S(`if \${}:
1
+ import{u as SO,r as l,j as r}from"./index-DI8F2A84.js";import{L as pO,E as R,C as mO,s as gO,t as i,a as hO,b as qO,i as fO,d as U,f as PO,c as $O,e as uO,g as yO,N as xO,I as vO,h as XO,j as S,m as Y,R as kO,k as zO,l as WO,n as RO,o as J,p as bO,q as _O,H as jO}from"./index-w_6OHgkJ.js";const UO=1,M=194,OO=195,wO=196,A=197,VO=198,GO=199,EO=200,ZO=2,eO=3,I=201,YO=24,CO=25,FO=49,NO=50,JO=55,AO=56,IO=57,DO=59,LO=60,HO=61,BO=62,KO=63,MO=65,Oe=238,ee=71,ae=241,ie=242,te=243,ne=244,re=245,oe=246,Qe=247,se=248,aO=72,de=249,le=250,ce=251,Te=252,Se=253,pe=254,me=255,ge=256,he=73,qe=77,fe=263,Pe=112,$e=130,ue=151,ye=152,xe=155,f=10,x=13,F=32,b=9,N=35,ve=40,Xe=46,C=123,D=125,iO=39,tO=34,L=92,ke=111,ze=120,We=78,Re=117,be=85,_e=new Set([CO,FO,NO,fe,MO,$e,AO,IO,Oe,BO,KO,aO,he,qe,LO,HO,ue,ye,xe,Pe]);function w(O){return O==f||O==x}function V(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const je=new R((O,e)=>{let a;if(O.next<0)O.acceptToken(GO);else if(e.context.flags&z)w(O.next)&&O.acceptToken(VO,1);else if(((a=O.peek(-1))<0||w(a))&&e.canShift(A)){let t=0;for(;O.next==F||O.next==b;)O.advance(),t++;(O.next==f||O.next==x||O.next==N)&&O.acceptToken(A,-t)}else w(O.next)&&O.acceptToken(wO,1)},{contextual:!0}),Ue=new R((O,e)=>{let a=e.context;if(a.flags)return;let t=O.peek(-1);if(t==f||t==x){let o=0,n=0;for(;;){if(O.next==F)o++;else if(O.next==b)o+=8-o%8;else break;O.advance(),n++}o!=a.indent&&O.next!=f&&O.next!=x&&O.next!=N&&(o<a.indent?O.acceptToken(OO,-n):O.acceptToken(M))}}),z=1,nO=2,p=4,m=8,g=16,h=32;function W(O,e,a){this.parent=O,this.indent=e,this.flags=a,this.hash=(O?O.hash+O.hash<<8:0)+e+(e<<4)+a+(a<<6)}const we=new W(null,0,0);function Ve(O){let e=0;for(let a=0;a<O.length;a++)e+=O.charCodeAt(a)==b?8-e%8:1;return e}const H=new Map([[ae,0],[ie,p],[te,m],[ne,m|p],[re,g],[oe,g|p],[Qe,g|m],[se,g|m|p],[de,h],[le,h|p],[ce,h|m],[Te,h|m|p],[Se,h|g],[pe,h|g|p],[me,h|g|m],[ge,h|g|m|p]].map(([O,e])=>[O,e|nO])),Ge=new mO({start:we,reduce(O,e,a,t){return O.flags&z&&_e.has(e)||(e==ee||e==aO)&&O.flags&nO?O.parent:O},shift(O,e,a,t){return e==M?new W(O,Ve(t.read(t.pos,a.pos)),0):e==OO?O.parent:e==YO||e==JO||e==DO||e==eO?new W(O,0,z):H.has(e)?new W(O,0,H.get(e)|O.flags&z):O},hash(O){return O.hash}}),Ee=new R(O=>{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let a=O.peek(e);if(!(a==F||a==b)){a!=ve&&a!=Xe&&a!=f&&a!=x&&a!=N&&O.acceptToken(UO);return}}}),Ze=new R((O,e)=>{let{flags:a}=e.context,t=a&p?tO:iO,o=(a&m)>0,n=!(a&g),Q=(a&h)>0,d=O.pos;for(;!(O.next<0);)if(Q&&O.next==C)if(O.peek(1)==C)O.advance(2);else{if(O.pos==d){O.acceptToken(eO,1);return}break}else if(n&&O.next==L){if(O.pos==d){O.advance();let c=O.next;c>=0&&(O.advance(),Ye(O,c)),O.acceptToken(ZO);return}break}else if(O.next==L&&!n&&O.peek(1)>-1)O.advance(2);else if(O.next==t&&(!o||O.peek(1)==t&&O.peek(2)==t)){if(O.pos==d){O.acceptToken(I,o?3:1);return}break}else if(O.next==f){if(o)O.advance();else if(O.pos==d){O.acceptToken(I);return}break}else O.advance();O.pos>d&&O.acceptToken(EO)});function Ye(O,e){if(e==ke)for(let a=0;a<2&&O.next>=48&&O.next<=55;a++)O.advance();else if(e==ze)for(let a=0;a<2&&V(O.next);a++)O.advance();else if(e==Re)for(let a=0;a<4&&V(O.next);a++)O.advance();else if(e==be)for(let a=0;a<8&&V(O.next);a++)O.advance();else if(e==We&&O.next==C){for(O.advance();O.next>=0&&O.next!=D&&O.next!=iO&&O.next!=tO&&O.next!=f;)O.advance();O.next==D&&O.advance()}}const Ce=gO({'async "*" "**" FormatConversion FormatSpec':i.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":i.controlKeyword,"in not and or is del":i.operatorKeyword,"from def class global nonlocal lambda":i.definitionKeyword,import:i.moduleKeyword,"with as print":i.keyword,Boolean:i.bool,None:i.null,VariableName:i.variableName,"CallExpression/VariableName":i.function(i.variableName),"FunctionDefinition/VariableName":i.function(i.definition(i.variableName)),"ClassDefinition/VariableName":i.definition(i.className),PropertyName:i.propertyName,"CallExpression/MemberExpression/PropertyName":i.function(i.propertyName),Comment:i.lineComment,Number:i.number,String:i.string,FormatString:i.special(i.string),Escape:i.escape,UpdateOp:i.updateOperator,"ArithOp!":i.arithmeticOperator,BitOp:i.bitwiseOperator,CompareOp:i.compareOperator,AssignOp:i.definitionOperator,Ellipsis:i.punctuation,At:i.meta,"( )":i.paren,"[ ]":i.squareBracket,"{ }":i.brace,".":i.derefOperator,", ;":i.separator}),Fe={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},Ne=pO.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:Ge,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[Ce],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[Ee,Ue,je,Ze,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>Fe[O]||-1}],tokenPrec:7668}),B=new xO,rO=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function k(O){return(e,a,t)=>{if(t)return!1;let o=e.node.getChild("VariableName");return o&&a(o,O),!0}}const Je={FunctionDefinition:k("function"),ClassDefinition:k("class"),ForStatement(O,e,a){if(a){for(let t=O.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name=="in")break}},ImportStatement(O,e){var a,t;let{node:o}=O,n=((a=o.firstChild)===null||a===void 0?void 0:a.name)=="from";for(let Q=o.getChild("import");Q;Q=Q.nextSibling)Q.name=="VariableName"&&((t=Q.nextSibling)===null||t===void 0?void 0:t.name)!="as"&&e(Q,n?"variable":"namespace")},AssignStatement(O,e){for(let a=O.node.firstChild;a;a=a.nextSibling)if(a.name=="VariableName")e(a,"variable");else if(a.name==":"||a.name=="AssignOp")break},ParamList(O,e){for(let a=null,t=O.node.firstChild;t;t=t.nextSibling)t.name=="VariableName"&&(!a||!/\*|AssignOp/.test(a.name))&&e(t,"variable"),a=t},CapturePattern:k("variable"),AsPattern:k("variable"),__proto__:null};function oO(O,e){let a=B.get(e);if(a)return a;let t=[],o=!0;function n(Q,d){let c=O.sliceString(Q.from,Q.to);t.push({label:c,type:d})}return e.cursor(vO.IncludeAnonymous).iterate(Q=>{if(Q.name){let d=Je[Q.name];if(d&&d(Q,n,o)||!o&&rO.has(Q.name))return!1;o=!1}else if(Q.to-Q.from>8192){for(let d of oO(O,Q.node))t.push(d);return!1}}),B.set(e,t),t}const K=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,QO=["String","FormatString","Comment","PropertyName"];function Ae(O){let e=uO(O.state).resolveInner(O.pos,-1);if(QO.indexOf(e.name)>-1)return null;let a=e.name=="VariableName"||e.to-e.from<20&&K.test(O.state.sliceDoc(e.from,e.to));if(!a&&!O.explicit)return null;let t=[];for(let o=e;o;o=o.parent)rO.has(o.name)&&(t=t.concat(oO(O.state.doc,o)));return{options:t,from:a?e.from:O.pos,validFor:K}}const Ie=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),De=[S("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),S("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),S("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),S("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),S(`if \${}:
2
2
 
3
3
  `,{label:"if",detail:"block",type:"keyword"}),S("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),S("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),S("import ${module}",{label:"import",detail:"statement",type:"keyword"}),S("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],Le=yO(QO,XO(Ie.concat(De)));function G(O){let{node:e,pos:a}=O,t=O.lineIndent(a,-1),o=null;for(;;){let n=e.childBefore(a);if(n)if(n.name=="Comment")a=n.from;else if(n.name=="Body"||n.name=="MatchBody")O.baseIndentFor(n)+O.unit<=t&&(o=n),e=n;else if(n.name=="MatchClause")e=n;else if(n.type.is("Statement"))e=n;else break;else break}return o}function E(O,e){let a=O.baseIndentFor(e),t=O.lineAt(O.pos,-1),o=t.from+t.text.length;return/^\s*($|#)/.test(t.text)&&O.node.to<o+100&&!/\S/.test(O.state.sliceDoc(o,O.node.to))&&O.lineIndent(O.pos,-1)<=a||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(O.textAfter)&&O.lineIndent(O.pos,-1)>a?null:a+O.unit}const Z=qO.define({name:"python",parser:Ne.configure({props:[fO.add({Body:O=>{var e;let a=/^\s*(#|$)/.test(O.textAfter)&&G(O)||O.node;return(e=E(O,a))!==null&&e!==void 0?e:O.continue()},MatchBody:O=>{var e;let a=G(O);return(e=E(O,a||O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),"ForStatement WhileStatement":O=>/^\s*else:/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except[ :]|finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),MatchStatement:O=>/^\s*case /.test(O.textAfter)?O.baseIndent+O.unit:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":U({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":U({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":U({closing:"]"}),MemberExpression:O=>O.baseIndent+O.unit,"String FormatString":()=>null,Script:O=>{var e;let a=G(O);return(e=a&&E(O,a))!==null&&e!==void 0?e:O.continue()}}),PO.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":$O,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)}),"String FormatString":(O,e)=>({from:e.doc.lineAt(O.from).to,to:O.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function He(){return new hO(Z,[Z.data.of({autocomplete:Ae}),Z.data.of({autocomplete:Le})])}const Be=_O.theme({"&":{backgroundColor:"#09090b",color:"#e4e4e7"},".cm-content":{caretColor:"#f97316"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"#f97316"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"rgba(249, 115, 22, 0.15)"},".cm-selectionMatch":{backgroundColor:"rgba(249, 115, 22, 0.08)"},".cm-activeLine":{backgroundColor:"rgba(255, 255, 255, 0.03)"},".cm-gutters":{backgroundColor:"#09090b",color:"#52525b",border:"none"},".cm-activeLineGutter":{backgroundColor:"rgba(255, 255, 255, 0.03)"},".cm-foldPlaceholder":{backgroundColor:"#27272a",border:"none",color:"#a1a1aa"},".cm-matchingBracket":{backgroundColor:"rgba(249, 115, 22, 0.2)",color:"#fafafa"}},{dark:!0}),Ke=jO.define([{tag:[i.comment,i.lineComment,i.blockComment],color:"#52525b",fontStyle:"italic"},{tag:[i.string,i.special(i.brace)],color:"#4ade80"},{tag:[i.number,i.bool,i.null],color:"#fdba74"},{tag:[i.keyword,i.operator],color:"#f97316"},{tag:[i.className,i.typeName,i.definition(i.typeName)],color:"#fbbf24"},{tag:[i.definition(i.variableName),i.function(i.variableName)],color:"#60a5fa"},{tag:i.variableName,color:"#e4e4e7"},{tag:[i.propertyName,i.definition(i.propertyName)],color:"#93c5fd"},{tag:i.tagName,color:"#f97316"},{tag:i.attributeName,color:"#fdba74"},{tag:i.attributeValue,color:"#4ade80"},{tag:[i.heading,i.strong],color:"#fafafa",fontWeight:"bold"},{tag:i.emphasis,color:"#e4e4e7",fontStyle:"italic"},{tag:[i.link,i.url],color:"#60a5fa"},{tag:i.regexp,color:"#fb923c"},{tag:i.meta,color:"#a1a1aa"},{tag:i.punctuation,color:"#71717a"}]),Me=[Be,bO(Ke)];function sO(){return""}function Oa(O){var a;switch((a=O.split(".").pop())==null?void 0:a.toLowerCase()){case"md":case"mdx":return Y();case"js":case"jsx":case"mjs":return J({jsx:!0});case"ts":case"tsx":return J({jsx:!0,typescript:!0});case"json":return RO();case"css":return WO();case"html":case"htm":return zO();case"py":return He();default:return Y()}}function dO(O){var a;const e=(a=O.split(".").pop())==null?void 0:a.toLowerCase();return e?["png","jpg","jpeg","gif","webp","svg","ico","bmp","avif"].includes(e)?"image":["mp4","webm","ogg","mov"].includes(e)?"video":["mp3","wav","flac","aac","m4a","ogg"].includes(e)?"audio":e==="pdf"?"pdf":null:null}function ea({path:O}){const e=dO(O),t=`${sO()}/content/${O.split("/").map(encodeURIComponent).join("/")}`;return e==="image"?r.jsx("div",{className:"flex items-center justify-center h-full p-4 overflow-auto bg-cc-bg/50",children:r.jsx("img",{src:t,alt:O,className:"max-w-full max-h-full object-contain rounded",style:{imageRendering:"auto"}})}):e==="video"?r.jsx("div",{className:"flex items-center justify-center h-full p-4",children:r.jsx("video",{src:t,controls:!0,className:"max-w-full max-h-full rounded"})}):e==="audio"?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[r.jsx("span",{className:"text-cc-muted text-sm",children:O.split("/").pop()}),r.jsx("audio",{src:t,controls:!0})]}):e==="pdf"?r.jsx("iframe",{src:t,className:"w-full h-full border-0",title:O}):null}function lO({node:O,depth:e,selectedPath:a,onSelect:t,gitStatuses:o}){var $,u;const[n,Q]=l.useState(e===0),d=O.type==="directory",c=o[O.path],v=d&&(($=O.children)==null?void 0:$.some(function q(T){var P;return o[T.path]?!0:((P=T.children)==null?void 0:P.some(q))??!1}));return r.jsxs(r.Fragment,{children:[r.jsxs("button",{onClick:()=>d?Q(!n):t(O.path),className:`w-full text-left flex items-center gap-1 py-0.5 text-xs hover:bg-cc-hover ${a===O.path?"bg-cc-active text-cc-fg":"text-cc-muted"}`,style:{paddingLeft:`${e*12+8}px`},children:[r.jsx("span",{className:"w-4 text-center text-cc-muted/50 shrink-0",children:d?n?"▾":"▸":""}),r.jsx("span",{className:`truncate ${v?"text-amber-400":""}`,children:O.name}),c&&r.jsx("span",{className:`ml-auto mr-2 text-[10px] font-bold px-1 rounded ${c==="A"?"bg-green-700 text-green-100":c==="D"?"bg-red-700 text-red-100":"bg-amber-700 text-amber-100"}`,children:c})]}),d&&n&&((u=O.children)==null?void 0:u.map(q=>r.jsx(lO,{node:q,depth:e+1,selectedPath:a,onSelect:t,gitStatuses:o},q.path)))]})}function ta(){const O=SO(s=>s.changedFilesTick),[e,a]=l.useState([]),[t,o]=l.useState({}),[n,Q]=l.useState(null),[d,c]=l.useState(""),[v,$]=l.useState(""),[u,q]=l.useState(!1),[T,P]=l.useState(!1),y=sO();l.useEffect(()=>{fetch(`${y}/api/files/tree`).then(s=>s.json()).then(s=>a(s.tree||[])).catch(()=>{}),fetch(`${y}/api/git/status`).then(s=>s.json()).then(s=>o(s.statuses||{})).catch(()=>{})},[O]);const _=n?dO(n):null;l.useEffect(()=>{!n||_||T||fetch(`${y}/api/files/read?path=${encodeURIComponent(n)}`).then(s=>s.json()).then(s=>{c(s.content||""),$(s.content||""),P(!1)}).catch(()=>{})},[n,O,_]);const cO=l.useCallback(s=>{c(s),P(s!==v)},[v]),j=l.useCallback(async()=>{if(!(!n||!T)){q(!0);try{await fetch(`${y}/api/files`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n,content:d})}),$(d),P(!1)}finally{q(!1)}}},[n,d,T,y]);l.useEffect(()=>{const s=X=>{(X.metaKey||X.ctrlKey)&&X.key==="s"&&(X.preventDefault(),j())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[j]);const TO=n?[Oa(n)]:[Y()];return r.jsxs("div",{className:"flex h-full",children:[r.jsxs("div",{className:"w-52 shrink-0 border-r border-cc-border flex flex-col",children:[r.jsx("div",{className:"px-3 py-2 border-b border-cc-border",children:r.jsx("span",{className:"text-xs font-medium text-cc-muted",children:"Files"})}),r.jsx("div",{className:"flex-1 overflow-auto",children:e.map(s=>r.jsx(lO,{node:s,depth:0,selectedPath:n,onSelect:Q,gitStatuses:t},s.path))})]}),r.jsx("div",{className:"flex-1 min-w-0 flex flex-col",children:n?_?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-cc-border text-xs",children:r.jsx("span",{className:"text-cc-muted truncate",children:n})}),r.jsx("div",{className:"flex-1 min-h-0",children:r.jsx(ea,{path:n})})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-cc-border text-xs",children:[r.jsx("span",{className:"text-cc-muted truncate",children:n}),T&&r.jsx("span",{className:"text-amber-400",children:"●"}),r.jsx("div",{className:"ml-auto",children:r.jsx("button",{onClick:j,disabled:!T||u,className:`px-2 py-0.5 rounded text-xs ${T?"bg-cc-primary text-cc-bg hover:bg-cc-primary-hover":"bg-cc-surface text-cc-muted/50"}`,children:u?"Saving...":"Save"})})]}),r.jsx("div",{className:"flex-1 overflow-auto",children:r.jsx(kO,{value:d,onChange:cO,extensions:TO,theme:Me,basicSetup:{foldGutter:!0,dropCursor:!1,allowMultipleSelections:!1},className:"h-full text-sm",height:"100%"})})]}):r.jsx("div",{className:"flex items-center justify-center h-full text-cc-muted/50 text-sm",children:"Select a file to edit"})})]})}export{ta as default};
@@ -1 +1 @@
1
- import{r as s,v as J,j as e}from"./index-BD_Lc77V.js";function y(){return""}const G='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"/></svg>';function U({svg:r}){const c=r&&r.trim().startsWith("<svg");return e.jsx("div",{className:`w-[1em] h-[1em] [&>svg]:w-full [&>svg]:h-full transition-all duration-500 ${c?"text-cc-primary drop-shadow-[0_0_8px_rgba(249,115,22,0.4)]":"text-cc-muted drop-shadow-[0_0_8px_rgba(255,255,255,0.15)]"}`,dangerouslySetInnerHTML:{__html:c?r:G}})}function K(r){const c=Math.floor((Date.now()-r)/1e3);if(c<60)return"just now";const o=Math.floor(c/60);if(o<60)return`${o}m ago`;const m=Math.floor(o/60);if(m<24)return`${m}h ago`;const d=Math.floor(m/24);return d<30?`${d}d ago`:`${Math.floor(d/30)}mo ago`}function V(r){const c=Math.floor((Date.now()-r)/1e3);if(c<60)return`${c}s`;const o=Math.floor(c/60);return o<60?`${o}m`:`${Math.floor(o/60)}h ${o%60}m`}function F(r,c){return r.startsWith(c)?"~"+r.slice(c.length):r}function D({name:r,displayName:c,description:o,version:m,icon:d,onLaunch:b,index:j,onDelete:v,onEdit:l,onEvolve:p}){const[N,w]=s.useState(!1);return e.jsxs("div",{onClick:u=>{u.target.closest("button")||b()},className:"group relative border border-cc-border/50 rounded-2xl p-6 bg-cc-card backdrop-blur-2xl shadow-[inset_0_1px_0_rgba(255,255,255,0.05)] hover:border-cc-primary/40 transition-all duration-500 hover:shadow-[0_8px_32px_-8px_rgba(249,115,22,0.2),inset_0_1px_0_rgba(255,255,255,0.1)] hover:-translate-y-1.5 cursor-pointer overflow-hidden flex flex-col h-full",style:{animation:`warmFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) ${j*.05}s both`},children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-cc-primary/0 to-cc-primary/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsx("div",{className:"flex items-start justify-between relative z-10",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-12 h-12 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 shadow-[0_4px_12px_rgba(0,0,0,0.3)] text-2xl group-hover:scale-110 group-hover:border-cc-primary/30 group-hover:shadow-[0_0_25px_rgba(249,115,22,0.15)] transition-all duration-500",children:e.jsx(U,{svg:d})}),e.jsxs("div",{className:"pt-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-cc-fg group-hover:text-cc-primary transition-colors duration-300",children:c}),o&&e.jsx("p",{className:"text-sm text-cc-muted/80 mt-1.5 leading-relaxed",children:o})]})]})}),e.jsxs("div",{className:"mt-auto pt-6 flex items-end justify-between relative z-10",children:[e.jsxs("span",{className:"text-xs px-2.5 py-1 rounded-full bg-cc-primary-muted/50 text-cc-primary font-medium tracking-wide",children:["v",m]}),e.jsxs("div",{className:"flex items-center gap-3",children:[p&&e.jsx("button",{onClick:p,className:"p-1.5 rounded-md text-cc-muted/40 hover:text-purple-400 hover:bg-purple-500/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Evolve skill",children:e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4",children:[e.jsx("path",{d:"M12 3c-1.5 0-2.5 1-3 2-.5-1-1.5-2-3-2C4 3 2 5 2 7c0 3 4 6 6 8 .5-.5 1.5-1.5 2-2"}),e.jsx("path",{d:"M12 3c1.5 0 2.5 1 3 2 .5-1 1.5-2 3-2 2 0 4 2 4 4 0 3-4 6-6 8-.5-.5-1.5-1.5-2-2"}),e.jsx("path",{d:"M12 21v-8"}),e.jsx("path",{d:"M9 18l3-3 3 3"})]})}),l&&e.jsx("button",{onClick:l,className:"p-1.5 rounded-md text-cc-muted/40 hover:text-cc-primary hover:bg-cc-primary/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Open in Mode Maker",children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4",children:e.jsx("path",{d:"M11.42 15.17L17.25 21A2.652 2.652 0 0021 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 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085"})})}),v&&!N&&e.jsx("button",{onClick:()=>w(!0),className:"p-1.5 rounded-md text-cc-muted/40 hover:text-red-400 hover:bg-red-500/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Delete mode",children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-4 h-4",children:e.jsx("path",{d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})})}),v&&N&&e.jsxs("div",{className:"flex items-center gap-2 bg-cc-surface/80 px-2 py-1 rounded border border-red-500/20",children:[e.jsx("button",{onClick:()=>{v(),w(!1)},className:"text-xs text-red-400 hover:text-red-300 font-medium transition-colors cursor-pointer",children:"Confirm"}),e.jsx("span",{className:"text-cc-border",children:"|"}),e.jsx("button",{onClick:()=>w(!1),className:"text-xs text-cc-muted hover:text-cc-fg transition-colors cursor-pointer",children:"Cancel"})]}),e.jsxs("div",{className:"flex items-center text-sm font-medium text-cc-primary opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300 delay-75",children:["Launch",e.jsx("svg",{className:"w-4 h-4 ml-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14 5l7 7m0 0l-7 7m7-7H3"})})]})]})]})]})}const H='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M11.42 15.17L17.25 21A2.652 2.652 0 0021 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 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085"/></svg>';function q({onLaunch:r}){return e.jsxs("div",{onClick:r,className:"group relative rounded-2xl p-6 bg-cc-card backdrop-blur-2xl cursor-pointer transition-all duration-500 hover:-translate-y-1 hover:shadow-[0_8px_32px_-8px_rgba(249,115,22,0.25)]",style:{animation:"warmFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both"},children:[e.jsx("div",{className:"absolute inset-0 rounded-2xl pointer-events-none",style:{padding:"1px",background:"conic-gradient(from var(--shimmer-angle), rgba(249,115,22,0.08) 0%, rgba(251,191,36,0.4) 12%, rgba(249,115,22,0.6) 20%, rgba(251,191,36,0.4) 28%, rgba(249,115,22,0.08) 40%, rgba(249,115,22,0.03) 60%, rgba(249,115,22,0.08) 100%)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",mask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",maskComposite:"exclude",animation:"shimmerRotate 4s linear infinite"}}),e.jsx("div",{className:"absolute inset-0 rounded-2xl bg-gradient-to-r from-cc-primary/0 via-cc-primary/5 to-cc-primary/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsxs("div",{className:"relative z-10 flex items-center gap-5",children:[e.jsx("div",{className:"w-14 h-14 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 shadow-[0_4px_16px_rgba(0,0,0,0.4)] group-hover:shadow-[0_0_30px_rgba(249,115,22,0.2)] transition-all duration-500",children:e.jsx("div",{className:"w-7 h-7 [&>svg]:w-full [&>svg]:h-full transition-all duration-500",style:{background:"linear-gradient(90deg, #f97316, #fbbf24, #fb923c, #f97316)",backgroundSize:"200% auto",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",animation:"text-gradient-flow 3s linear infinite"},dangerouslySetInnerHTML:{__html:H.replace('stroke="currentColor"','stroke="url(#mm-grad)"').replace("</svg>",'<defs><linearGradient id="mm-grad" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color:#f97316"/><stop offset="50%" style="stop-color:#fbbf24"/><stop offset="100%" style="stop-color:#f97316"/></linearGradient></defs></svg>')}})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-lg font-semibold bg-clip-text text-transparent animate-text-gradient-flow",style:{backgroundImage:"linear-gradient(90deg, #f97316, #fbbf24, #fb923c, #f97316)",backgroundSize:"200% auto"},children:"Mode Maker"}),e.jsx("p",{className:"text-sm text-cc-muted/80 mt-0.5",children:"Create and develop your own Pneuma modes with AI assistance"})]}),e.jsxs("div",{className:"flex items-center text-sm font-medium text-cc-primary opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300 delay-75 shrink-0",children:["Create",e.jsx("svg",{className:"w-4 h-4 ml-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14 5l7 7m0 0l-7 7m7-7H3"})})]})]})]})}function Y({session:r,homeDir:c,icon:o,onResume:m,onDelete:d}){const[b,j]=s.useState(!1),[v,l]=s.useState(!1),[p,N]=s.useState(null),w=async()=>{if(!(b||v||p)){l(!0);try{const g=await(await fetch(`${y()}/api/launch/skill-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r.mode,workspace:r.workspace})})).json();if(g.needsUpdate&&!g.dismissed){N({currentVersion:g.currentVersion,installedVersion:g.installedVersion}),l(!1);return}await m(!g.needsUpdate||g.dismissed),l(!1)}catch{await m(),l(!1)}}},u=async()=>{N(null),l(!0),await m(!1),l(!1)},C=async()=>{try{await fetch(`${y()}/api/launch/skill-dismiss`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:r.workspace,version:p.currentVersion})})}catch{}N(null),l(!0),await m(!0),l(!1)};return e.jsxs("div",{className:`relative rounded-lg bg-transparent hover:bg-cc-surface/40 transition-all duration-300 group cursor-pointer overflow-hidden ${v?"opacity-50 pointer-events-none":""}`,onClick:w,children:[e.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-0 bg-cc-primary rounded-r-full transition-all duration-300 group-hover:h-3/4 opacity-0 group-hover:opacity-100"}),e.jsxs("div",{className:"flex items-center gap-4 px-4 py-3",children:[e.jsx("div",{className:"w-8 h-8 shrink-0 rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 flex items-center justify-center text-lg shadow-[0_2px_8px_rgba(0,0,0,0.3)] group-hover:border-cc-primary/30 group-hover:shadow-[0_0_15px_rgba(249,115,22,0.15)] transition-all",children:e.jsx(U,{svg:o})}),e.jsxs("div",{className:"min-w-0 flex-1 flex flex-col justify-center",children:[e.jsx("span",{className:"text-sm font-medium text-cc-fg/90 group-hover:text-cc-fg transition-colors truncate",children:v?"Launching...":r.displayName}),e.jsx("span",{className:"text-[11px] text-cc-muted/70 font-mono truncate mt-0.5",children:F(r.workspace,c)})]}),e.jsx("span",{className:"text-xs text-cc-muted/50 group-hover:text-cc-primary/60 transition-colors shrink-0 pr-2",children:K(r.lastAccessed)}),e.jsx("div",{className:"absolute right-4 flex items-center bg-cc-surface/90 backdrop-blur-md rounded-md border border-cc-border/50 opacity-0 group-hover:opacity-100 transition-opacity duration-200",onClick:k=>k.stopPropagation(),children:!b&&!p?e.jsxs("button",{onClick:()=>j(!0),className:"p-1.5 text-cc-muted hover:text-red-400 hover:bg-red-500/10 rounded-md transition-colors cursor-pointer flex items-center gap-1.5",title:"Remove",children:[e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-3.5 h-3.5",children:e.jsx("path",{d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})}),e.jsx("span",{className:"text-xs pr-1 font-medium hidden sm:inline-block",children:"Remove"})]}):b?e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1",children:[e.jsx("span",{className:"text-xs text-cc-muted mr-1",children:"Are you sure?"}),e.jsx("button",{onClick:d,className:"text-xs px-2 py-0.5 rounded bg-red-500/10 text-red-400 hover:bg-red-500/20 font-medium cursor-pointer transition-colors",children:"Yes"}),e.jsx("button",{onClick:()=>j(!1),className:"text-xs px-2 py-0.5 rounded hover:bg-cc-hover text-cc-muted hover:text-cc-fg cursor-pointer transition-colors",children:"No"})]}):null})]}),p&&e.jsxs("div",{className:"mx-4 mb-2 p-3 bg-cc-primary/5 border border-cc-primary/20 rounded-lg flex items-center justify-between",onClick:k=>k.stopPropagation(),children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-[11px] font-semibold text-cc-primary uppercase tracking-wider mb-0.5",children:"Skill Update Available"}),e.jsxs("span",{className:"text-xs text-cc-fg/80",children:["v",p.installedVersion," → v",p.currentVersion]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:C,className:"px-3 py-1.5 text-xs rounded-md border border-cc-border/50 text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:"Skip"}),e.jsx("button",{onClick:u,className:"px-3 py-1.5 text-xs rounded-md bg-cc-primary/10 border border-cc-primary/30 text-cc-primary hover:bg-cc-primary hover:text-cc-fg font-medium transition-colors cursor-pointer shadow-[0_0_10px_rgba(249,115,22,0.1)]",children:"Update"})]})]})]})}function Q({process:r,homeDir:c,onStop:o}){const[m,d]=s.useState(!1),[b,j]=s.useState(V(r.startedAt));s.useEffect(()=>{const l=setInterval(()=>j(V(r.startedAt)),1e4);return()=>clearInterval(l)},[r.startedAt]);const v=r.specifier.split("/").pop()||r.specifier;return e.jsxs("div",{className:"relative rounded-lg bg-[#050505] border border-emerald-500/10 hover:border-emerald-500/30 transition-all duration-300 group overflow-hidden mb-2",children:[e.jsx("div",{className:"absolute top-0 left-0 w-full h-[1px] bg-gradient-to-r from-emerald-500/0 via-emerald-500/50 to-emerald-500/0 opacity-50"}),e.jsxs("div",{className:"flex items-center gap-4 px-4 py-3",children:[e.jsx("div",{className:"relative flex items-center justify-center w-8 h-8 shrink-0 rounded-full bg-gradient-to-b from-emerald-500/10 to-emerald-500/5 border border-emerald-500/20 shadow-[0_2px_8px_rgba(0,0,0,0.3)]",children:e.jsxs("span",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-emerald-500"})]})}),e.jsxs("div",{className:"min-w-0 flex-1 flex flex-col justify-center",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-emerald-50 truncate filter drop-shadow-[0_0_8px_rgba(16,185,129,0.3)]",children:v}),e.jsx("span",{className:"text-xs text-emerald-500 font-mono tracking-wide",children:b})]}),e.jsx("span",{className:"text-[11px] text-cc-muted/60 font-mono truncate mt-0.5",children:F(r.workspace,c)})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsxs("button",{onClick:()=>window.open(r.url,"_blank"),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-md hover:bg-emerald-500 hover:text-emerald-50 transition-colors shadow-[0_0_10px_rgba(16,185,129,0.1)] cursor-pointer",title:"Open Workspace",children:["Open",e.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]}),e.jsx("div",{className:"w-px h-4 bg-cc-border/50 mx-1 opacity-0 group-hover:opacity-100 transition-opacity"}),m?e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>{o(),d(!1)},className:"text-xs text-red-400 hover:text-red-300 font-medium cursor-pointer",children:"Confirm"}),e.jsx("button",{onClick:()=>d(!1),className:"text-xs text-cc-muted hover:text-cc-fg cursor-pointer",children:"Cancel"})]}):e.jsx("button",{onClick:()=>d(!0),className:"p-1.5 text-cc-muted/40 hover:text-red-400 hover:bg-red-500/10 rounded-md transition-all opacity-0 group-hover:opacity-100 cursor-pointer",title:"Stop",children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-3.5 h-3.5",children:e.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"1.5"})})})]})]})]})}function X({startPath:r,apiBase:c,onSelect:o,onClose:m}){const[d,b]=s.useState(r),[j,v]=s.useState([]),[l,p]=s.useState(null),[N,w]=s.useState(!0),[u,C]=s.useState(null),k=s.useRef(null),g=s.useCallback(async i=>{var _;w(!0),C(null);try{const x=await(await fetch(`${c}/api/browse-dirs?path=${encodeURIComponent(i)}`)).json();x.error&&((_=x.dirs)==null?void 0:_.length)===0&&C(x.error),b(x.current||i),v(x.dirs||[]),p(x.parent||null)}catch{C("Failed to browse directory")}w(!1)},[c]);s.useEffect(()=>{g(r)},[g,r]),s.useEffect(()=>{const i=_=>{k.current&&!k.current.contains(_.target)&&m()};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[m]);const L=d.split("/").filter(Boolean);return e.jsxs("div",{ref:k,className:"absolute left-0 right-0 top-full mt-1 z-50 bg-cc-surface border border-cc-border/60 rounded-lg shadow-[0_8px_32px_rgba(0,0,0,0.5)] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-0.5 px-3 py-2 border-b border-cc-border/40 overflow-x-auto text-xs",children:[e.jsx("button",{onClick:()=>g("/"),className:"shrink-0 text-cc-muted hover:text-cc-primary transition-colors cursor-pointer px-1",children:"/"}),L.map((i,_)=>{const S="/"+L.slice(0,_+1).join("/"),x=_===L.length-1;return e.jsxs("span",{className:"flex items-center shrink-0",children:[e.jsx("span",{className:"text-cc-border mx-0.5",children:"/"}),e.jsx("button",{onClick:()=>!x&&g(S),className:`transition-colors cursor-pointer px-0.5 ${x?"text-cc-fg font-medium":"text-cc-muted hover:text-cc-primary"}`,children:i})]},S)})]}),e.jsx("div",{className:"max-h-48 overflow-y-auto",children:N?e.jsx("div",{className:"py-6 text-center text-cc-muted text-sm",children:"Loading..."}):u&&j.length===0?e.jsx("div",{className:"py-6 text-center text-cc-muted text-sm",children:u}):e.jsxs(e.Fragment,{children:[l&&e.jsxs("button",{onClick:()=>g(l),className:"w-full flex items-center gap-2 px-3 py-1.5 text-sm text-cc-muted hover:bg-cc-hover hover:text-cc-fg transition-colors cursor-pointer",children:[e.jsx("svg",{className:"w-4 h-4 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15L3 9m0 0l6-6M3 9h12a6 6 0 010 12h-3"})}),".."]}),j.map(i=>e.jsxs("button",{onClick:()=>g(i.path),className:"w-full flex items-center gap-2 px-3 py-1.5 text-sm text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer group",children:[e.jsx("svg",{className:"w-4 h-4 shrink-0 text-cc-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"})}),e.jsx("span",{className:"truncate flex-1 text-left",children:i.name})]},i.path)),j.length===0&&!u&&e.jsx("div",{className:"py-4 text-center text-cc-muted/60 text-xs",children:"Empty directory"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-t border-cc-border/40",children:[e.jsx("span",{className:"text-xs text-cc-muted truncate mr-2",children:d}),e.jsx("button",{onClick:()=>{o(d),m()},className:"shrink-0 px-3 py-1 text-xs font-medium rounded-md bg-cc-primary hover:bg-cc-primary-hover text-cc-fg transition-colors cursor-pointer",children:"Select"})]})]})}function Z({specifier:r,displayName:c,defaultWorkspace:o,defaultInitParams:m,homeDir:d,onClose:b}){const j=/[\\/]/.test(r)?r.split(/[\\/]/).filter(Boolean).pop():r,v=new Date().toISOString().replace(/[-:]/g,"").replace("T","-").slice(0,13),l=d?`${d.replace(/[\\/]+$/,"")}/pneuma-projects/${j}-${v}`:`~/pneuma-projects/${j}-${v}`,[p,N]=s.useState(o||l),[w,u]=s.useState([]),[C,k]=s.useState({}),g=s.useRef(!1),[L,i]=s.useState(!1),[_,S]=s.useState(!0),[x,P]=s.useState(null),[A,O]=s.useState(!1),[I,E]=s.useState(null),$=s.useCallback(async a=>{N(a),E(null);try{const f=await(await fetch(`${y()}/api/workspace-check?path=${encodeURIComponent(a)}`)).json();f.hasSession&&(E({mode:f.mode,config:f.config||{}}),f.config&&Object.keys(f.config).length>0&&k(f.config))}catch{}},[]);s.useEffect(()=>{(async()=>{var h;try{const M=await(await fetch(`${y()}/api/launch/prepare`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r})})).json();if(M.error)P(M.error);else if((h=M.initParams)!=null&&h.length){u(M.initParams);const T={};for(const t of M.initParams)T[t.name]=t.defaultValue;k(T)}}catch(f){P(f instanceof Error?f.message:"Failed to prepare launch")}S(!1),o&&$(o)})()},[r,o,$]);const z=s.useCallback(async()=>{i(!0),P(null);try{const h=await(await fetch(`${y()}/api/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r,workspace:p,initParams:{...m||{},...Object.keys(C).length>0?C:{}}})})).json();h.error?(P(h.error),i(!1)):h.url&&(window.open(h.url,"_blank"),i(!1),b())}catch(a){P(a instanceof Error?a.message:"Launch failed"),i(!1)}},[r,p,C,b]);return e.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:e.jsxs("div",{className:"bg-cc-card/90 backdrop-blur-2xl border border-cc-border/50 rounded-2xl p-8 w-full max-w-lg mx-4 shadow-[0_16px_64px_-16px_rgba(0,0,0,0.8),inset_0_1px_0_rgba(255,255,255,0.1)]",style:{animation:"warmFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"text-xl font-semibold text-cc-fg",children:["Launch ",c]}),e.jsx("button",{onClick:b,className:"p-1.5 rounded-lg text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsx("label",{className:"block text-sm text-cc-muted mb-1",children:"Workspace path"}),e.jsxs("div",{className:"relative mb-4",children:[e.jsxs("div",{className:"flex gap-1.5",children:[e.jsx("input",{type:"text",value:p,onChange:a=>{N(a.target.value),E(null)},className:"flex-1 min-w-0 px-3 py-2 bg-cc-input-bg border border-cc-border rounded-lg text-cc-fg text-sm focus:outline-none focus:border-cc-primary/50"}),e.jsx("button",{type:"button",onClick:async()=>{const a=window.pneumaDesktop;if(a!=null&&a.showOpenDialog){const h=await a.showOpenDialog({title:"Select Workspace",defaultPath:p||void 0});h&&$(h)}else O(!A)},className:`shrink-0 px-2.5 py-2 rounded-lg border transition-colors cursor-pointer ${A?"bg-cc-primary/20 border-cc-primary/50 text-cc-primary":"bg-cc-input-bg border-cc-border text-cc-muted hover:text-cc-fg hover:border-cc-border"}`,title:"Browse directories",children:e.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"})})})]}),A&&e.jsx(X,{startPath:p||d,apiBase:y(),onSelect:$,onClose:()=>O(!1)})]}),_&&e.jsx("p",{className:"text-sm text-cc-muted mb-4",children:"Loading configuration..."}),I&&e.jsxs("div",{className:"flex items-center gap-2 mb-4 px-3 py-2 rounded-lg bg-cc-primary-muted/30 border border-cc-primary/20",children:[e.jsx("svg",{className:"w-4 h-4 text-cc-primary shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),e.jsx("span",{className:"text-xs text-cc-primary",children:"Existing workspace — will resume session"})]}),w.length>0&&!o&&e.jsxs("div",{className:"mb-4 space-y-3",children:[e.jsxs("p",{className:"text-sm font-medium text-cc-fg",children:["Parameters",I&&e.jsx("span",{className:"text-xs text-cc-muted font-normal ml-2",children:"(read-only)"})]}),w.map(a=>e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm text-cc-muted mb-1",children:[a.label,a.description&&e.jsxs("span",{className:"text-cc-muted/60",children:[" — ",a.description]})]}),e.jsx("input",{type:a.type==="number"?"number":"text",value:C[a.name]??a.defaultValue,disabled:!!I,onChange:h=>{let f=a.type==="number"?Number(h.target.value):h.target.value;a.name==="modeName"&&typeof f=="string"&&(f=f.toLowerCase().replace(/[^a-z0-9-]/g,""));const M={...C,[a.name]:f};a.name==="modeName"&&typeof f=="string"&&!g.current&&w.some(t=>t.name==="displayName")&&(M.displayName=f.split(/[-_\s]+/).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")),a.name==="displayName"&&(g.current=!0),k(M)},className:`w-full px-3 py-2 bg-cc-input-bg border border-cc-border rounded-lg text-cc-fg text-sm focus:outline-none focus:border-cc-primary/50 ${I?"opacity-60 cursor-not-allowed":""}`})]},a.name))]}),x&&e.jsx("p",{className:"text-sm text-cc-error mb-4",children:x}),e.jsxs("div",{className:"flex gap-3 justify-end",children:[e.jsx("button",{onClick:b,className:"px-4 py-2 text-sm rounded-lg border border-cc-border text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:z,disabled:L||_,className:"px-4 py-2 text-sm font-medium rounded-lg bg-cc-primary hover:bg-cc-primary-hover text-cc-fg transition-colors disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:L?"Launching...":"Launch"})]})]})})}function te(){const[r,c]=s.useState([]),[o,m]=s.useState([]),[d,b]=s.useState([]),[j,v]=s.useState([]),[l,p]=s.useState([]),[N,w]=s.useState(""),[u,C]=s.useState(""),[k,g]=s.useState(!0),[L,i]=s.useState(null),_=s.useCallback(()=>{fetch(`${y()}/api/registry`).then(t=>t.json()).then(t=>{c(t.builtins||[]),m(t.published||[]),b(t.local||[])}).catch(()=>{})},[]),S=s.useCallback(()=>{fetch(`${y()}/api/sessions`).then(t=>t.json()).then(t=>{v(t.sessions||[]),t.homeDir&&w(t.homeDir)}).catch(()=>{})},[]),x=s.useCallback(()=>{fetch(`${y()}/api/processes/children`).then(t=>t.json()).then(t=>p(t.processes||[])).catch(()=>{})},[]);s.useEffect(()=>{Promise.all([fetch(`${y()}/api/registry`).then(t=>t.json()),fetch(`${y()}/api/sessions`).then(t=>t.json()),fetch(`${y()}/api/processes/children`).then(t=>t.json())]).then(([t,n,B])=>{c(t.builtins||[]),m(t.published||[]),b(t.local||[]),v(n.sessions||[]),n.homeDir&&w(n.homeDir),p(B.processes||[])}).catch(()=>{}).finally(()=>g(!1))},[]),s.useEffect(()=>{const t=setInterval(x,3e3);return()=>clearInterval(t)},[x]);const P=s.useCallback(async t=>{try{await fetch(`${y()}/api/modes/${encodeURIComponent(t)}`,{method:"DELETE"}),_()}catch{}},[_]),A=s.useCallback(async t=>{try{await fetch(`${y()}/api/sessions/${encodeURIComponent(t)}`,{method:"DELETE"}),S()}catch{}},[S]),O=s.useCallback(async t=>{try{await fetch(`${y()}/api/processes/children/${t}/kill`,{method:"POST"}),x()}catch{}},[x]),I=s.useCallback(async(t,n,B)=>{try{const R=await(await fetch(`${y()}/api/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:t,workspace:n,...B?{skipSkill:!0}:{}})})).json();R.url&&(window.open(R.url,"_blank"),S(),x())}catch{}},[S,x]),E=t=>{if(!u)return t;const n=u.toLowerCase();return t.filter(B=>{var W;return B.name.toLowerCase().includes(n)||B.displayName.toLowerCase().includes(n)||((W=B.description)==null?void 0:W.toLowerCase().includes(n))})},$=E(r),z=E(o),a=E(d),h=u?j.filter(t=>t.mode.toLowerCase().includes(u.toLowerCase())||t.displayName.toLowerCase().includes(u.toLowerCase())||t.workspace.toLowerCase().includes(u.toLowerCase())):j,f=!u||["mode-maker","mode maker","create","develop","new mode"].some(t=>t.includes(u.toLowerCase())||u.toLowerCase().includes(t)),M=J.useMemo(()=>{const t={};t["mode-maker"]=H;for(const n of r)n.icon&&(t[n.name]=n.icon);for(const n of d)n.icon&&(t[n.name]=n.icon);for(const n of o)n.icon&&(t[n.name]=n.icon);return t},[r,d,o]),T=h.length>0||l.length>0;return e.jsxs("div",{className:"min-h-screen bg-cc-bg text-cc-fg relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-10 pointer-events-none mix-blend-overlay"}),e.jsx("div",{className:"absolute top-[-10%] left-[20%] w-[60%] h-[40%] bg-cc-primary/15 blur-[120px] rounded-full pointer-events-none animate-[pulse-dot_8s_ease-in-out_infinite]"}),e.jsx("div",{className:"absolute top-[20%] right-[-10%] w-[40%] h-[50%] bg-violet-500/15 blur-[100px] rounded-full pointer-events-none animate-[pulse-dot_10s_ease-in-out_infinite_reverse]"}),e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-20 relative z-10",children:[e.jsxs("div",{className:"text-center mb-16",style:{animation:"warmFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1)"},children:[e.jsx("h1",{className:"text-6xl font-extrabold mb-4 tracking-tight text-transparent bg-clip-text bg-gradient-to-r from-cc-fg via-cc-primary to-indigo-400 animate-text-gradient-flow",children:"Pneuma"}),e.jsx("p",{className:"text-cc-muted/80 text-lg font-medium tracking-wide",children:"Choose a mode to get started"}),e.jsxs("a",{href:"https://github.com/pandazki/pneuma-skills",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 mt-3 text-sm text-cc-muted/50 hover:text-cc-muted transition-colors",children:[e.jsx("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})}),"GitHub"]})]}),e.jsx("div",{className:"mb-14 max-w-xl mx-auto",style:{animation:"warmFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both"},children:e.jsxs("div",{className:"relative group",children:[e.jsx("input",{type:"text",value:u,onChange:t=>C(t.target.value),placeholder:"Search modes...",className:"w-full pl-12 pr-6 py-4 bg-cc-surface/40 backdrop-blur-2xl border border-cc-border/40 shadow-[inset_0_1px_0_rgba(255,255,255,0.05)] rounded-full text-cc-fg text-base placeholder:text-cc-muted/40 outline-none transition-all focus:border-cc-primary/50 focus:bg-cc-surface/70 focus:shadow-[0_0_30px_rgba(249,115,22,0.2),inset_0_1px_0_rgba(255,255,255,0.1)] hover:border-cc-border"}),e.jsx("svg",{className:"absolute left-5 top-1/2 -translate-y-1/2 w-5 h-5 text-cc-muted/60 group-focus-within:text-cc-primary/80 transition-colors",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]})}),k?e.jsx("div",{className:"flex justify-center items-center py-20",children:e.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-cc-primary border-t-transparent animate-spin"})}):e.jsxs(e.Fragment,{children:[T&&e.jsx("section",{className:"mb-10",style:{animation:"warmFadeIn 0.5s ease-out 0.15s both"},children:e.jsxs("div",{className:`grid gap-6 ${h.length>0&&l.length>0?"grid-cols-1 md:grid-cols-2":"grid-cols-1"}`,children:[h.length>0&&e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-3",children:"Recent Sessions"}),e.jsx("div",{className:"space-y-2 max-h-[220px] overflow-y-auto p-1",children:h.map(t=>e.jsx(Y,{session:t,homeDir:N,icon:M[t.mode],onResume:n=>I(t.mode,t.workspace,n),onDelete:()=>A(t.id)},t.id))})]}),l.length>0&&e.jsxs("div",{children:[e.jsxs("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-3",children:["Running",e.jsxs("span",{className:"ml-2 text-xs text-emerald-400/80 normal-case font-normal",children:[l.length," active"]})]}),e.jsx("div",{className:"space-y-2 max-h-[220px] overflow-y-auto pr-1",children:l.map(t=>e.jsx(Q,{process:t,homeDir:N,onStop:()=>O(t.pid)},t.pid))})]})]})}),$.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Built-in Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:$.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.name,displayName:t.displayName}),onEvolve:()=>i({specifier:"evolve",displayName:`Evolve: ${t.displayName}`,defaultInitParams:{targetMode:t.name}})},t.name))})]}),f&&e.jsx("section",{className:"mb-10",children:e.jsx(q,{onLaunch:()=>i({specifier:"mode-maker",displayName:"Mode Maker"})})}),a.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Local Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:a.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.path,displayName:t.displayName}),onEdit:()=>i({specifier:"mode-maker",displayName:"Mode Maker",defaultWorkspace:t.path}),onEvolve:()=>i({specifier:"evolve",displayName:`Evolve: ${t.displayName}`,defaultInitParams:{targetMode:t.path}}),onDelete:()=>P(t.path.split("/").pop())},t.name))})]}),z.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Published Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:z.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.archiveUrl,displayName:t.displayName})},t.name))})]}),$.length===0&&z.length===0&&a.length===0&&e.jsx("p",{className:"text-center text-cc-muted",children:u?"No modes match your search.":"No modes available."})]})]}),L&&e.jsx(Z,{specifier:L.specifier,displayName:L.displayName,defaultWorkspace:L.defaultWorkspace,defaultInitParams:L.defaultInitParams,homeDir:N,onClose:()=>i(null)})]})}export{te as default};
1
+ import{r as s,v as J,j as e}from"./index-DI8F2A84.js";function y(){return""}const G='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"/></svg>';function U({svg:r}){const c=r&&r.trim().startsWith("<svg");return e.jsx("div",{className:`w-[1em] h-[1em] [&>svg]:w-full [&>svg]:h-full transition-all duration-500 ${c?"text-cc-primary drop-shadow-[0_0_8px_rgba(249,115,22,0.4)]":"text-cc-muted drop-shadow-[0_0_8px_rgba(255,255,255,0.15)]"}`,dangerouslySetInnerHTML:{__html:c?r:G}})}function K(r){const c=Math.floor((Date.now()-r)/1e3);if(c<60)return"just now";const o=Math.floor(c/60);if(o<60)return`${o}m ago`;const m=Math.floor(o/60);if(m<24)return`${m}h ago`;const d=Math.floor(m/24);return d<30?`${d}d ago`:`${Math.floor(d/30)}mo ago`}function V(r){const c=Math.floor((Date.now()-r)/1e3);if(c<60)return`${c}s`;const o=Math.floor(c/60);return o<60?`${o}m`:`${Math.floor(o/60)}h ${o%60}m`}function F(r,c){return r.startsWith(c)?"~"+r.slice(c.length):r}function D({name:r,displayName:c,description:o,version:m,icon:d,onLaunch:b,index:j,onDelete:v,onEdit:l,onEvolve:p}){const[N,w]=s.useState(!1);return e.jsxs("div",{onClick:u=>{u.target.closest("button")||b()},className:"group relative border border-cc-border/50 rounded-2xl p-6 bg-cc-card backdrop-blur-2xl shadow-[inset_0_1px_0_rgba(255,255,255,0.05)] hover:border-cc-primary/40 transition-all duration-500 hover:shadow-[0_8px_32px_-8px_rgba(249,115,22,0.2),inset_0_1px_0_rgba(255,255,255,0.1)] hover:-translate-y-1.5 cursor-pointer overflow-hidden flex flex-col h-full",style:{animation:`warmFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) ${j*.05}s both`},children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-cc-primary/0 to-cc-primary/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsx("div",{className:"flex items-start justify-between relative z-10",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-12 h-12 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 shadow-[0_4px_12px_rgba(0,0,0,0.3)] text-2xl group-hover:scale-110 group-hover:border-cc-primary/30 group-hover:shadow-[0_0_25px_rgba(249,115,22,0.15)] transition-all duration-500",children:e.jsx(U,{svg:d})}),e.jsxs("div",{className:"pt-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-cc-fg group-hover:text-cc-primary transition-colors duration-300",children:c}),o&&e.jsx("p",{className:"text-sm text-cc-muted/80 mt-1.5 leading-relaxed",children:o})]})]})}),e.jsxs("div",{className:"mt-auto pt-6 flex items-end justify-between relative z-10",children:[e.jsxs("span",{className:"text-xs px-2.5 py-1 rounded-full bg-cc-primary-muted/50 text-cc-primary font-medium tracking-wide",children:["v",m]}),e.jsxs("div",{className:"flex items-center gap-3",children:[p&&e.jsx("button",{onClick:p,className:"p-1.5 rounded-md text-cc-muted/40 hover:text-purple-400 hover:bg-purple-500/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Evolve skill",children:e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4",children:[e.jsx("path",{d:"M12 3c-1.5 0-2.5 1-3 2-.5-1-1.5-2-3-2C4 3 2 5 2 7c0 3 4 6 6 8 .5-.5 1.5-1.5 2-2"}),e.jsx("path",{d:"M12 3c1.5 0 2.5 1 3 2 .5-1 1.5-2 3-2 2 0 4 2 4 4 0 3-4 6-6 8-.5-.5-1.5-1.5-2-2"}),e.jsx("path",{d:"M12 21v-8"}),e.jsx("path",{d:"M9 18l3-3 3 3"})]})}),l&&e.jsx("button",{onClick:l,className:"p-1.5 rounded-md text-cc-muted/40 hover:text-cc-primary hover:bg-cc-primary/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Open in Mode Maker",children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4",children:e.jsx("path",{d:"M11.42 15.17L17.25 21A2.652 2.652 0 0021 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 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085"})})}),v&&!N&&e.jsx("button",{onClick:()=>w(!0),className:"p-1.5 rounded-md text-cc-muted/40 hover:text-red-400 hover:bg-red-500/10 opacity-0 group-hover:opacity-100 transition-all cursor-pointer",title:"Delete mode",children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-4 h-4",children:e.jsx("path",{d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})})}),v&&N&&e.jsxs("div",{className:"flex items-center gap-2 bg-cc-surface/80 px-2 py-1 rounded border border-red-500/20",children:[e.jsx("button",{onClick:()=>{v(),w(!1)},className:"text-xs text-red-400 hover:text-red-300 font-medium transition-colors cursor-pointer",children:"Confirm"}),e.jsx("span",{className:"text-cc-border",children:"|"}),e.jsx("button",{onClick:()=>w(!1),className:"text-xs text-cc-muted hover:text-cc-fg transition-colors cursor-pointer",children:"Cancel"})]}),e.jsxs("div",{className:"flex items-center text-sm font-medium text-cc-primary opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300 delay-75",children:["Launch",e.jsx("svg",{className:"w-4 h-4 ml-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14 5l7 7m0 0l-7 7m7-7H3"})})]})]})]})]})}const H='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M11.42 15.17L17.25 21A2.652 2.652 0 0021 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 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085"/></svg>';function q({onLaunch:r}){return e.jsxs("div",{onClick:r,className:"group relative rounded-2xl p-6 bg-cc-card backdrop-blur-2xl cursor-pointer transition-all duration-500 hover:-translate-y-1 hover:shadow-[0_8px_32px_-8px_rgba(249,115,22,0.25)]",style:{animation:"warmFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both"},children:[e.jsx("div",{className:"absolute inset-0 rounded-2xl pointer-events-none",style:{padding:"1px",background:"conic-gradient(from var(--shimmer-angle), rgba(249,115,22,0.08) 0%, rgba(251,191,36,0.4) 12%, rgba(249,115,22,0.6) 20%, rgba(251,191,36,0.4) 28%, rgba(249,115,22,0.08) 40%, rgba(249,115,22,0.03) 60%, rgba(249,115,22,0.08) 100%)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",mask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",maskComposite:"exclude",animation:"shimmerRotate 4s linear infinite"}}),e.jsx("div",{className:"absolute inset-0 rounded-2xl bg-gradient-to-r from-cc-primary/0 via-cc-primary/5 to-cc-primary/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsxs("div",{className:"relative z-10 flex items-center gap-5",children:[e.jsx("div",{className:"w-14 h-14 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 shadow-[0_4px_16px_rgba(0,0,0,0.4)] group-hover:shadow-[0_0_30px_rgba(249,115,22,0.2)] transition-all duration-500",children:e.jsx("div",{className:"w-7 h-7 [&>svg]:w-full [&>svg]:h-full transition-all duration-500",style:{background:"linear-gradient(90deg, #f97316, #fbbf24, #fb923c, #f97316)",backgroundSize:"200% auto",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",animation:"text-gradient-flow 3s linear infinite"},dangerouslySetInnerHTML:{__html:H.replace('stroke="currentColor"','stroke="url(#mm-grad)"').replace("</svg>",'<defs><linearGradient id="mm-grad" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color:#f97316"/><stop offset="50%" style="stop-color:#fbbf24"/><stop offset="100%" style="stop-color:#f97316"/></linearGradient></defs></svg>')}})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-lg font-semibold bg-clip-text text-transparent animate-text-gradient-flow",style:{backgroundImage:"linear-gradient(90deg, #f97316, #fbbf24, #fb923c, #f97316)",backgroundSize:"200% auto"},children:"Mode Maker"}),e.jsx("p",{className:"text-sm text-cc-muted/80 mt-0.5",children:"Create and develop your own Pneuma modes with AI assistance"})]}),e.jsxs("div",{className:"flex items-center text-sm font-medium text-cc-primary opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300 delay-75 shrink-0",children:["Create",e.jsx("svg",{className:"w-4 h-4 ml-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14 5l7 7m0 0l-7 7m7-7H3"})})]})]})]})}function Y({session:r,homeDir:c,icon:o,onResume:m,onDelete:d}){const[b,j]=s.useState(!1),[v,l]=s.useState(!1),[p,N]=s.useState(null),w=async()=>{if(!(b||v||p)){l(!0);try{const g=await(await fetch(`${y()}/api/launch/skill-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r.mode,workspace:r.workspace})})).json();if(g.needsUpdate&&!g.dismissed){N({currentVersion:g.currentVersion,installedVersion:g.installedVersion}),l(!1);return}await m(!g.needsUpdate||g.dismissed),l(!1)}catch{await m(),l(!1)}}},u=async()=>{N(null),l(!0),await m(!1),l(!1)},C=async()=>{try{await fetch(`${y()}/api/launch/skill-dismiss`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:r.workspace,version:p.currentVersion})})}catch{}N(null),l(!0),await m(!0),l(!1)};return e.jsxs("div",{className:`relative rounded-lg bg-transparent hover:bg-cc-surface/40 transition-all duration-300 group cursor-pointer overflow-hidden ${v?"opacity-50 pointer-events-none":""}`,onClick:w,children:[e.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-0 bg-cc-primary rounded-r-full transition-all duration-300 group-hover:h-3/4 opacity-0 group-hover:opacity-100"}),e.jsxs("div",{className:"flex items-center gap-4 px-4 py-3",children:[e.jsx("div",{className:"w-8 h-8 shrink-0 rounded-full bg-gradient-to-b from-cc-surface/80 to-cc-surface/20 border border-white/5 flex items-center justify-center text-lg shadow-[0_2px_8px_rgba(0,0,0,0.3)] group-hover:border-cc-primary/30 group-hover:shadow-[0_0_15px_rgba(249,115,22,0.15)] transition-all",children:e.jsx(U,{svg:o})}),e.jsxs("div",{className:"min-w-0 flex-1 flex flex-col justify-center",children:[e.jsx("span",{className:"text-sm font-medium text-cc-fg/90 group-hover:text-cc-fg transition-colors truncate",children:v?"Launching...":r.displayName}),e.jsx("span",{className:"text-[11px] text-cc-muted/70 font-mono truncate mt-0.5",children:F(r.workspace,c)})]}),e.jsx("span",{className:"text-xs text-cc-muted/50 group-hover:text-cc-primary/60 transition-colors shrink-0 pr-2",children:K(r.lastAccessed)}),e.jsx("div",{className:"absolute right-4 flex items-center bg-cc-surface/90 backdrop-blur-md rounded-md border border-cc-border/50 opacity-0 group-hover:opacity-100 transition-opacity duration-200",onClick:k=>k.stopPropagation(),children:!b&&!p?e.jsxs("button",{onClick:()=>j(!0),className:"p-1.5 text-cc-muted hover:text-red-400 hover:bg-red-500/10 rounded-md transition-colors cursor-pointer flex items-center gap-1.5",title:"Remove",children:[e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-3.5 h-3.5",children:e.jsx("path",{d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})}),e.jsx("span",{className:"text-xs pr-1 font-medium hidden sm:inline-block",children:"Remove"})]}):b?e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1",children:[e.jsx("span",{className:"text-xs text-cc-muted mr-1",children:"Are you sure?"}),e.jsx("button",{onClick:d,className:"text-xs px-2 py-0.5 rounded bg-red-500/10 text-red-400 hover:bg-red-500/20 font-medium cursor-pointer transition-colors",children:"Yes"}),e.jsx("button",{onClick:()=>j(!1),className:"text-xs px-2 py-0.5 rounded hover:bg-cc-hover text-cc-muted hover:text-cc-fg cursor-pointer transition-colors",children:"No"})]}):null})]}),p&&e.jsxs("div",{className:"mx-4 mb-2 p-3 bg-cc-primary/5 border border-cc-primary/20 rounded-lg flex items-center justify-between",onClick:k=>k.stopPropagation(),children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-[11px] font-semibold text-cc-primary uppercase tracking-wider mb-0.5",children:"Skill Update Available"}),e.jsxs("span",{className:"text-xs text-cc-fg/80",children:["v",p.installedVersion," → v",p.currentVersion]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:C,className:"px-3 py-1.5 text-xs rounded-md border border-cc-border/50 text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:"Skip"}),e.jsx("button",{onClick:u,className:"px-3 py-1.5 text-xs rounded-md bg-cc-primary/10 border border-cc-primary/30 text-cc-primary hover:bg-cc-primary hover:text-cc-fg font-medium transition-colors cursor-pointer shadow-[0_0_10px_rgba(249,115,22,0.1)]",children:"Update"})]})]})]})}function Q({process:r,homeDir:c,onStop:o}){const[m,d]=s.useState(!1),[b,j]=s.useState(V(r.startedAt));s.useEffect(()=>{const l=setInterval(()=>j(V(r.startedAt)),1e4);return()=>clearInterval(l)},[r.startedAt]);const v=r.specifier.split("/").pop()||r.specifier;return e.jsxs("div",{className:"relative rounded-lg bg-[#050505] border border-emerald-500/10 hover:border-emerald-500/30 transition-all duration-300 group overflow-hidden mb-2",children:[e.jsx("div",{className:"absolute top-0 left-0 w-full h-[1px] bg-gradient-to-r from-emerald-500/0 via-emerald-500/50 to-emerald-500/0 opacity-50"}),e.jsxs("div",{className:"flex items-center gap-4 px-4 py-3",children:[e.jsx("div",{className:"relative flex items-center justify-center w-8 h-8 shrink-0 rounded-full bg-gradient-to-b from-emerald-500/10 to-emerald-500/5 border border-emerald-500/20 shadow-[0_2px_8px_rgba(0,0,0,0.3)]",children:e.jsxs("span",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-emerald-500"})]})}),e.jsxs("div",{className:"min-w-0 flex-1 flex flex-col justify-center",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-emerald-50 truncate filter drop-shadow-[0_0_8px_rgba(16,185,129,0.3)]",children:v}),e.jsx("span",{className:"text-xs text-emerald-500 font-mono tracking-wide",children:b})]}),e.jsx("span",{className:"text-[11px] text-cc-muted/60 font-mono truncate mt-0.5",children:F(r.workspace,c)})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsxs("button",{onClick:()=>window.open(r.url,"_blank"),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-md hover:bg-emerald-500 hover:text-emerald-50 transition-colors shadow-[0_0_10px_rgba(16,185,129,0.1)] cursor-pointer",title:"Open Workspace",children:["Open",e.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]}),e.jsx("div",{className:"w-px h-4 bg-cc-border/50 mx-1 opacity-0 group-hover:opacity-100 transition-opacity"}),m?e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>{o(),d(!1)},className:"text-xs text-red-400 hover:text-red-300 font-medium cursor-pointer",children:"Confirm"}),e.jsx("button",{onClick:()=>d(!1),className:"text-xs text-cc-muted hover:text-cc-fg cursor-pointer",children:"Cancel"})]}):e.jsx("button",{onClick:()=>d(!0),className:"p-1.5 text-cc-muted/40 hover:text-red-400 hover:bg-red-500/10 rounded-md transition-all opacity-0 group-hover:opacity-100 cursor-pointer",title:"Stop",children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"w-3.5 h-3.5",children:e.jsx("rect",{x:"3",y:"3",width:"10",height:"10",rx:"1.5"})})})]})]})]})}function X({startPath:r,apiBase:c,onSelect:o,onClose:m}){const[d,b]=s.useState(r),[j,v]=s.useState([]),[l,p]=s.useState(null),[N,w]=s.useState(!0),[u,C]=s.useState(null),k=s.useRef(null),g=s.useCallback(async i=>{var _;w(!0),C(null);try{const x=await(await fetch(`${c}/api/browse-dirs?path=${encodeURIComponent(i)}`)).json();x.error&&((_=x.dirs)==null?void 0:_.length)===0&&C(x.error),b(x.current||i),v(x.dirs||[]),p(x.parent||null)}catch{C("Failed to browse directory")}w(!1)},[c]);s.useEffect(()=>{g(r)},[g,r]),s.useEffect(()=>{const i=_=>{k.current&&!k.current.contains(_.target)&&m()};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[m]);const L=d.split("/").filter(Boolean);return e.jsxs("div",{ref:k,className:"absolute left-0 right-0 top-full mt-1 z-50 bg-cc-surface border border-cc-border/60 rounded-lg shadow-[0_8px_32px_rgba(0,0,0,0.5)] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-0.5 px-3 py-2 border-b border-cc-border/40 overflow-x-auto text-xs",children:[e.jsx("button",{onClick:()=>g("/"),className:"shrink-0 text-cc-muted hover:text-cc-primary transition-colors cursor-pointer px-1",children:"/"}),L.map((i,_)=>{const S="/"+L.slice(0,_+1).join("/"),x=_===L.length-1;return e.jsxs("span",{className:"flex items-center shrink-0",children:[e.jsx("span",{className:"text-cc-border mx-0.5",children:"/"}),e.jsx("button",{onClick:()=>!x&&g(S),className:`transition-colors cursor-pointer px-0.5 ${x?"text-cc-fg font-medium":"text-cc-muted hover:text-cc-primary"}`,children:i})]},S)})]}),e.jsx("div",{className:"max-h-48 overflow-y-auto",children:N?e.jsx("div",{className:"py-6 text-center text-cc-muted text-sm",children:"Loading..."}):u&&j.length===0?e.jsx("div",{className:"py-6 text-center text-cc-muted text-sm",children:u}):e.jsxs(e.Fragment,{children:[l&&e.jsxs("button",{onClick:()=>g(l),className:"w-full flex items-center gap-2 px-3 py-1.5 text-sm text-cc-muted hover:bg-cc-hover hover:text-cc-fg transition-colors cursor-pointer",children:[e.jsx("svg",{className:"w-4 h-4 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15L3 9m0 0l6-6M3 9h12a6 6 0 010 12h-3"})}),".."]}),j.map(i=>e.jsxs("button",{onClick:()=>g(i.path),className:"w-full flex items-center gap-2 px-3 py-1.5 text-sm text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer group",children:[e.jsx("svg",{className:"w-4 h-4 shrink-0 text-cc-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"})}),e.jsx("span",{className:"truncate flex-1 text-left",children:i.name})]},i.path)),j.length===0&&!u&&e.jsx("div",{className:"py-4 text-center text-cc-muted/60 text-xs",children:"Empty directory"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-t border-cc-border/40",children:[e.jsx("span",{className:"text-xs text-cc-muted truncate mr-2",children:d}),e.jsx("button",{onClick:()=>{o(d),m()},className:"shrink-0 px-3 py-1 text-xs font-medium rounded-md bg-cc-primary hover:bg-cc-primary-hover text-cc-fg transition-colors cursor-pointer",children:"Select"})]})]})}function Z({specifier:r,displayName:c,defaultWorkspace:o,defaultInitParams:m,homeDir:d,onClose:b}){const j=/[\\/]/.test(r)?r.split(/[\\/]/).filter(Boolean).pop():r,v=new Date().toISOString().replace(/[-:]/g,"").replace("T","-").slice(0,13),l=d?`${d.replace(/[\\/]+$/,"")}/pneuma-projects/${j}-${v}`:`~/pneuma-projects/${j}-${v}`,[p,N]=s.useState(o||l),[w,u]=s.useState([]),[C,k]=s.useState({}),g=s.useRef(!1),[L,i]=s.useState(!1),[_,S]=s.useState(!0),[x,P]=s.useState(null),[A,O]=s.useState(!1),[I,E]=s.useState(null),$=s.useCallback(async a=>{N(a),E(null);try{const f=await(await fetch(`${y()}/api/workspace-check?path=${encodeURIComponent(a)}`)).json();f.hasSession&&(E({mode:f.mode,config:f.config||{}}),f.config&&Object.keys(f.config).length>0&&k(f.config))}catch{}},[]);s.useEffect(()=>{(async()=>{var h;try{const M=await(await fetch(`${y()}/api/launch/prepare`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r})})).json();if(M.error)P(M.error);else if((h=M.initParams)!=null&&h.length){u(M.initParams);const T={};for(const t of M.initParams)T[t.name]=t.defaultValue;k(T)}}catch(f){P(f instanceof Error?f.message:"Failed to prepare launch")}S(!1),o&&$(o)})()},[r,o,$]);const z=s.useCallback(async()=>{i(!0),P(null);try{const h=await(await fetch(`${y()}/api/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:r,workspace:p,initParams:{...m||{},...Object.keys(C).length>0?C:{}}})})).json();h.error?(P(h.error),i(!1)):h.url&&(window.open(h.url,"_blank"),i(!1),b())}catch(a){P(a instanceof Error?a.message:"Launch failed"),i(!1)}},[r,p,C,b]);return e.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:e.jsxs("div",{className:"bg-cc-card/90 backdrop-blur-2xl border border-cc-border/50 rounded-2xl p-8 w-full max-w-lg mx-4 shadow-[0_16px_64px_-16px_rgba(0,0,0,0.8),inset_0_1px_0_rgba(255,255,255,0.1)]",style:{animation:"warmFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"text-xl font-semibold text-cc-fg",children:["Launch ",c]}),e.jsx("button",{onClick:b,className:"p-1.5 rounded-lg text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsx("label",{className:"block text-sm text-cc-muted mb-1",children:"Workspace path"}),e.jsxs("div",{className:"relative mb-4",children:[e.jsxs("div",{className:"flex gap-1.5",children:[e.jsx("input",{type:"text",value:p,onChange:a=>{N(a.target.value),E(null)},className:"flex-1 min-w-0 px-3 py-2 bg-cc-input-bg border border-cc-border rounded-lg text-cc-fg text-sm focus:outline-none focus:border-cc-primary/50"}),e.jsx("button",{type:"button",onClick:async()=>{const a=window.pneumaDesktop;if(a!=null&&a.showOpenDialog){const h=await a.showOpenDialog({title:"Select Workspace",defaultPath:p||void 0});h&&$(h)}else O(!A)},className:`shrink-0 px-2.5 py-2 rounded-lg border transition-colors cursor-pointer ${A?"bg-cc-primary/20 border-cc-primary/50 text-cc-primary":"bg-cc-input-bg border-cc-border text-cc-muted hover:text-cc-fg hover:border-cc-border"}`,title:"Browse directories",children:e.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"})})})]}),A&&e.jsx(X,{startPath:p||d,apiBase:y(),onSelect:$,onClose:()=>O(!1)})]}),_&&e.jsx("p",{className:"text-sm text-cc-muted mb-4",children:"Loading configuration..."}),I&&e.jsxs("div",{className:"flex items-center gap-2 mb-4 px-3 py-2 rounded-lg bg-cc-primary-muted/30 border border-cc-primary/20",children:[e.jsx("svg",{className:"w-4 h-4 text-cc-primary shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),e.jsx("span",{className:"text-xs text-cc-primary",children:"Existing workspace — will resume session"})]}),w.length>0&&!o&&e.jsxs("div",{className:"mb-4 space-y-3",children:[e.jsxs("p",{className:"text-sm font-medium text-cc-fg",children:["Parameters",I&&e.jsx("span",{className:"text-xs text-cc-muted font-normal ml-2",children:"(read-only)"})]}),w.map(a=>e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm text-cc-muted mb-1",children:[a.label,a.description&&e.jsxs("span",{className:"text-cc-muted/60",children:[" — ",a.description]})]}),e.jsx("input",{type:a.type==="number"?"number":"text",value:C[a.name]??a.defaultValue,disabled:!!I,onChange:h=>{let f=a.type==="number"?Number(h.target.value):h.target.value;a.name==="modeName"&&typeof f=="string"&&(f=f.toLowerCase().replace(/[^a-z0-9-]/g,""));const M={...C,[a.name]:f};a.name==="modeName"&&typeof f=="string"&&!g.current&&w.some(t=>t.name==="displayName")&&(M.displayName=f.split(/[-_\s]+/).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")),a.name==="displayName"&&(g.current=!0),k(M)},className:`w-full px-3 py-2 bg-cc-input-bg border border-cc-border rounded-lg text-cc-fg text-sm focus:outline-none focus:border-cc-primary/50 ${I?"opacity-60 cursor-not-allowed":""}`})]},a.name))]}),x&&e.jsx("p",{className:"text-sm text-cc-error mb-4",children:x}),e.jsxs("div",{className:"flex gap-3 justify-end",children:[e.jsx("button",{onClick:b,className:"px-4 py-2 text-sm rounded-lg border border-cc-border text-cc-muted hover:text-cc-fg hover:bg-cc-hover transition-colors cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:z,disabled:L||_,className:"px-4 py-2 text-sm font-medium rounded-lg bg-cc-primary hover:bg-cc-primary-hover text-cc-fg transition-colors disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:L?"Launching...":"Launch"})]})]})})}function te(){const[r,c]=s.useState([]),[o,m]=s.useState([]),[d,b]=s.useState([]),[j,v]=s.useState([]),[l,p]=s.useState([]),[N,w]=s.useState(""),[u,C]=s.useState(""),[k,g]=s.useState(!0),[L,i]=s.useState(null),_=s.useCallback(()=>{fetch(`${y()}/api/registry`).then(t=>t.json()).then(t=>{c(t.builtins||[]),m(t.published||[]),b(t.local||[])}).catch(()=>{})},[]),S=s.useCallback(()=>{fetch(`${y()}/api/sessions`).then(t=>t.json()).then(t=>{v(t.sessions||[]),t.homeDir&&w(t.homeDir)}).catch(()=>{})},[]),x=s.useCallback(()=>{fetch(`${y()}/api/processes/children`).then(t=>t.json()).then(t=>p(t.processes||[])).catch(()=>{})},[]);s.useEffect(()=>{Promise.all([fetch(`${y()}/api/registry`).then(t=>t.json()),fetch(`${y()}/api/sessions`).then(t=>t.json()),fetch(`${y()}/api/processes/children`).then(t=>t.json())]).then(([t,n,B])=>{c(t.builtins||[]),m(t.published||[]),b(t.local||[]),v(n.sessions||[]),n.homeDir&&w(n.homeDir),p(B.processes||[])}).catch(()=>{}).finally(()=>g(!1))},[]),s.useEffect(()=>{const t=setInterval(x,3e3);return()=>clearInterval(t)},[x]);const P=s.useCallback(async t=>{try{await fetch(`${y()}/api/modes/${encodeURIComponent(t)}`,{method:"DELETE"}),_()}catch{}},[_]),A=s.useCallback(async t=>{try{await fetch(`${y()}/api/sessions/${encodeURIComponent(t)}`,{method:"DELETE"}),S()}catch{}},[S]),O=s.useCallback(async t=>{try{await fetch(`${y()}/api/processes/children/${t}/kill`,{method:"POST"}),x()}catch{}},[x]),I=s.useCallback(async(t,n,B)=>{try{const R=await(await fetch(`${y()}/api/launch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({specifier:t,workspace:n,...B?{skipSkill:!0}:{}})})).json();R.url&&(window.open(R.url,"_blank"),S(),x())}catch{}},[S,x]),E=t=>{if(!u)return t;const n=u.toLowerCase();return t.filter(B=>{var W;return B.name.toLowerCase().includes(n)||B.displayName.toLowerCase().includes(n)||((W=B.description)==null?void 0:W.toLowerCase().includes(n))})},$=E(r),z=E(o),a=E(d),h=u?j.filter(t=>t.mode.toLowerCase().includes(u.toLowerCase())||t.displayName.toLowerCase().includes(u.toLowerCase())||t.workspace.toLowerCase().includes(u.toLowerCase())):j,f=!u||["mode-maker","mode maker","create","develop","new mode"].some(t=>t.includes(u.toLowerCase())||u.toLowerCase().includes(t)),M=J.useMemo(()=>{const t={};t["mode-maker"]=H;for(const n of r)n.icon&&(t[n.name]=n.icon);for(const n of d)n.icon&&(t[n.name]=n.icon);for(const n of o)n.icon&&(t[n.name]=n.icon);return t},[r,d,o]),T=h.length>0||l.length>0;return e.jsxs("div",{className:"min-h-screen bg-cc-bg text-cc-fg relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-10 pointer-events-none mix-blend-overlay"}),e.jsx("div",{className:"absolute top-[-10%] left-[20%] w-[60%] h-[40%] bg-cc-primary/15 blur-[120px] rounded-full pointer-events-none animate-[pulse-dot_8s_ease-in-out_infinite]"}),e.jsx("div",{className:"absolute top-[20%] right-[-10%] w-[40%] h-[50%] bg-violet-500/15 blur-[100px] rounded-full pointer-events-none animate-[pulse-dot_10s_ease-in-out_infinite_reverse]"}),e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-20 relative z-10",children:[e.jsxs("div",{className:"text-center mb-16",style:{animation:"warmFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1)"},children:[e.jsx("h1",{className:"text-6xl font-extrabold mb-4 tracking-tight text-transparent bg-clip-text bg-gradient-to-r from-cc-fg via-cc-primary to-indigo-400 animate-text-gradient-flow",children:"Pneuma"}),e.jsx("p",{className:"text-cc-muted/80 text-lg font-medium tracking-wide",children:"Choose a mode to get started"}),e.jsxs("a",{href:"https://github.com/pandazki/pneuma-skills",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 mt-3 text-sm text-cc-muted/50 hover:text-cc-muted transition-colors",children:[e.jsx("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})}),"GitHub"]})]}),e.jsx("div",{className:"mb-14 max-w-xl mx-auto",style:{animation:"warmFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both"},children:e.jsxs("div",{className:"relative group",children:[e.jsx("input",{type:"text",value:u,onChange:t=>C(t.target.value),placeholder:"Search modes...",className:"w-full pl-12 pr-6 py-4 bg-cc-surface/40 backdrop-blur-2xl border border-cc-border/40 shadow-[inset_0_1px_0_rgba(255,255,255,0.05)] rounded-full text-cc-fg text-base placeholder:text-cc-muted/40 outline-none transition-all focus:border-cc-primary/50 focus:bg-cc-surface/70 focus:shadow-[0_0_30px_rgba(249,115,22,0.2),inset_0_1px_0_rgba(255,255,255,0.1)] hover:border-cc-border"}),e.jsx("svg",{className:"absolute left-5 top-1/2 -translate-y-1/2 w-5 h-5 text-cc-muted/60 group-focus-within:text-cc-primary/80 transition-colors",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]})}),k?e.jsx("div",{className:"flex justify-center items-center py-20",children:e.jsx("div",{className:"w-8 h-8 rounded-full border-2 border-cc-primary border-t-transparent animate-spin"})}):e.jsxs(e.Fragment,{children:[T&&e.jsx("section",{className:"mb-10",style:{animation:"warmFadeIn 0.5s ease-out 0.15s both"},children:e.jsxs("div",{className:`grid gap-6 ${h.length>0&&l.length>0?"grid-cols-1 md:grid-cols-2":"grid-cols-1"}`,children:[h.length>0&&e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-3",children:"Recent Sessions"}),e.jsx("div",{className:"space-y-2 max-h-[220px] overflow-y-auto p-1",children:h.map(t=>e.jsx(Y,{session:t,homeDir:N,icon:M[t.mode],onResume:n=>I(t.mode,t.workspace,n),onDelete:()=>A(t.id)},t.id))})]}),l.length>0&&e.jsxs("div",{children:[e.jsxs("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-3",children:["Running",e.jsxs("span",{className:"ml-2 text-xs text-emerald-400/80 normal-case font-normal",children:[l.length," active"]})]}),e.jsx("div",{className:"space-y-2 max-h-[220px] overflow-y-auto pr-1",children:l.map(t=>e.jsx(Q,{process:t,homeDir:N,onStop:()=>O(t.pid)},t.pid))})]})]})}),$.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Built-in Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:$.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.name,displayName:t.displayName}),onEvolve:()=>i({specifier:"evolve",displayName:`Evolve: ${t.displayName}`,defaultInitParams:{targetMode:t.name}})},t.name))})]}),f&&e.jsx("section",{className:"mb-10",children:e.jsx(q,{onLaunch:()=>i({specifier:"mode-maker",displayName:"Mode Maker"})})}),a.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Local Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:a.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.path,displayName:t.displayName}),onEdit:()=>i({specifier:"mode-maker",displayName:"Mode Maker",defaultWorkspace:t.path}),onEvolve:()=>i({specifier:"evolve",displayName:`Evolve: ${t.displayName}`,defaultInitParams:{targetMode:t.path}}),onDelete:()=>P(t.path.split("/").pop())},t.name))})]}),z.length>0&&e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"text-sm font-medium text-cc-muted uppercase tracking-wide mb-4",children:"Published Modes"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:z.map((t,n)=>e.jsx(D,{name:t.name,displayName:t.displayName,description:t.description,version:t.version,icon:t.icon,index:n,onLaunch:()=>i({specifier:t.archiveUrl,displayName:t.displayName})},t.name))})]}),$.length===0&&z.length===0&&a.length===0&&e.jsx("p",{className:"text-center text-cc-muted",children:u?"No modes match your search.":"No modes available."})]})]}),L&&e.jsx(Z,{specifier:L.specifier,displayName:L.displayName,defaultWorkspace:L.defaultWorkspace,defaultInitParams:L.defaultInitParams,homeDir:N,onClose:()=>i(null)})]})}export{te as default};
@@ -1 +1 @@
1
- import{j as e}from"./index-BD_Lc77V.js";function n({clearPatterns:t,files:c,onConfirm:r,onCancel:i}){return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:e.jsxs("div",{className:"bg-cc-card border border-cc-border rounded-lg shadow-xl max-w-md w-full mx-4 overflow-hidden",children:[e.jsxs("div",{className:"px-5 pt-5 pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-amber-400 mb-2",children:[e.jsx("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"w-5 h-5 shrink-0",children:e.jsx("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 6a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 6zm0 9a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})}),e.jsx("h3",{className:"text-sm font-semibold text-cc-fg",children:"Initialize Workspace"})]}),e.jsx("p",{className:"text-xs text-cc-muted",children:"This will clear existing files and create new ones. This action cannot be undone."})]}),e.jsxs("div",{className:"px-5 pb-4 space-y-3",children:[t.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[11px] font-medium text-red-400 mb-1",children:"Files to clear:"}),e.jsx("div",{className:"bg-cc-bg/60 rounded p-2 text-xs font-mono text-cc-muted space-y-0.5 max-h-24 overflow-y-auto",children:t.map(s=>e.jsx("div",{children:s},s))})]}),c.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"text-[11px] font-medium text-green-400 mb-1",children:["Files to create (",c.length,"):"]}),e.jsx("div",{className:"bg-cc-bg/60 rounded p-2 text-xs font-mono text-cc-muted space-y-0.5 max-h-32 overflow-y-auto",children:c.map(s=>e.jsx("div",{children:s.path},s.path))})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 px-5 py-3 border-t border-cc-border bg-cc-bg/30",children:[e.jsx("button",{onClick:i,className:"px-3 py-1.5 text-xs text-cc-muted hover:text-cc-fg bg-cc-bg hover:bg-cc-hover rounded transition-colors cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:r,className:"px-3 py-1.5 text-xs text-white bg-amber-600 hover:bg-amber-500 rounded transition-colors cursor-pointer",children:"Initialize"})]})]})})}export{n as S};
1
+ import{j as e}from"./index-DI8F2A84.js";function n({clearPatterns:t,files:c,onConfirm:r,onCancel:i}){return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:e.jsxs("div",{className:"bg-cc-card border border-cc-border rounded-lg shadow-xl max-w-md w-full mx-4 overflow-hidden",children:[e.jsxs("div",{className:"px-5 pt-5 pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-amber-400 mb-2",children:[e.jsx("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"w-5 h-5 shrink-0",children:e.jsx("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 6a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 6zm0 9a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})}),e.jsx("h3",{className:"text-sm font-semibold text-cc-fg",children:"Initialize Workspace"})]}),e.jsx("p",{className:"text-xs text-cc-muted",children:"This will clear existing files and create new ones. This action cannot be undone."})]}),e.jsxs("div",{className:"px-5 pb-4 space-y-3",children:[t.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"text-[11px] font-medium text-red-400 mb-1",children:"Files to clear:"}),e.jsx("div",{className:"bg-cc-bg/60 rounded p-2 text-xs font-mono text-cc-muted space-y-0.5 max-h-24 overflow-y-auto",children:t.map(s=>e.jsx("div",{children:s},s))})]}),c.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"text-[11px] font-medium text-green-400 mb-1",children:["Files to create (",c.length,"):"]}),e.jsx("div",{className:"bg-cc-bg/60 rounded p-2 text-xs font-mono text-cc-muted space-y-0.5 max-h-32 overflow-y-auto",children:c.map(s=>e.jsx("div",{children:s.path},s.path))})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 px-5 py-3 border-t border-cc-border bg-cc-bg/30",children:[e.jsx("button",{onClick:i,className:"px-3 py-1.5 text-xs text-cc-muted hover:text-cc-fg bg-cc-bg hover:bg-cc-hover rounded transition-colors cursor-pointer",children:"Cancel"}),e.jsx("button",{onClick:r,className:"px-3 py-1.5 text-xs text-white bg-amber-600 hover:bg-amber-500 rounded transition-colors cursor-pointer",children:"Initialize"})]})]})})}export{n as S};
@@ -1,4 +1,4 @@
1
- import{u as os,r as We,j as Ye}from"./index-BD_Lc77V.js";/**
1
+ import{u as os,r as We,j as Ye}from"./index-DI8F2A84.js";/**
2
2
  * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
3
3
  * @license MIT
4
4
  *
@@ -1,4 +1,4 @@
1
- import"./percentages-BXMCSKIN-Cu0bZiEI.js";import"./index-BD_Lc77V.js";import"./index-C84wm3uG.js";import"./with-selector-OkvL4sGG.js";var u={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",decreaseFontSize:"تصغير حجم الخط",increaseFontSize:"تكبير حجم الخط",unbindText:"فك ربط النص",bindText:"ربط النص بالحاوية",createContainerFromText:"نص مغلف في حاوية",link:{edit:"تعديل الرابط",editEmbed:"تحرير الرابط وإدراجه",create:"إنشاء رابط",createEmbed:"إنشاء رابط و إدراجه",label:"رابط",labelEmbed:"رابط و إدراج",empty:"لم يتم تعيين رابط"},lineEditor:{edit:"تحرير السطر",exit:"الخروج من المُحرر"},elementLock:{lock:"قفل",unlock:"فتح",lockAll:"قفل الكل",unlockAll:"فتح الكل"},statusPublished:"نُشر",sidebarLock:"إبقاء الشريط الجانبي مفتوح",selectAllElementsInFrame:"تحديد جميع العناصر في الإطار",removeAllElementsFromFrame:"إزالة جميع العناصر من الإطار",eyeDropper:"اختيار اللون من القماش",textToDiagram:"",prompt:""},A={noItems:"لا توجد عناصر أضيفت بعد...",hint_emptyLibrary:"حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.",hint_emptyPrivateLibrary:"حدد عنصر على القماش لإضافته هنا."},e={clearReset:"إعادة تعيين اللوحة",exportJSON:"صدر الملف",exportImage:"تصدير الصورة...",export:"حفظ إلى...",copyToClipboard:"نسخ إلى الحافظة",save:"احفظ للملف الحالي",saveAs:"حفظ كـ",load:"فتح",getShareableLink:"احصل على رابط المشاركة",close:"غلق",selectLanguage:"اختر اللغة",scrollBackToContent:"الرجوع إلى المحتوى",zoomIn:"تكبير",zoomOut:"تصغير",resetZoom:"إعادة تعيين الشاشة",menu:"القائمة",done:"تم",edit:"تعديل",undo:"تراجع",redo:"إعادة تنفيذ",resetLibrary:"إعادة ضبط المكتبة",createNewRoom:"إنشاء غرفة جديدة",fullScreen:"شاشة كاملة",darkMode:"الوضع المظلم",lightMode:"الوضع المضيء",zenMode:"وضع التأمل",objectsSnapMode:"التقط إلى العناصر",exitZenMode:"إلغاء الوضع الليلى",cancel:"إلغاء",clear:"مسح",remove:"إزالة",embed:"تبديل الإدراج",publishLibrary:"انشر",submit:"أرسل",confirm:"تأكيد",embeddableInteractionButton:"اضغط للتفاعل"},a={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
1
+ import"./percentages-BXMCSKIN-C5zxFaN_.js";import"./index-DI8F2A84.js";import"./index-CISUDHeQ.js";import"./with-selector-HIW4mFzk.js";var u={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",decreaseFontSize:"تصغير حجم الخط",increaseFontSize:"تكبير حجم الخط",unbindText:"فك ربط النص",bindText:"ربط النص بالحاوية",createContainerFromText:"نص مغلف في حاوية",link:{edit:"تعديل الرابط",editEmbed:"تحرير الرابط وإدراجه",create:"إنشاء رابط",createEmbed:"إنشاء رابط و إدراجه",label:"رابط",labelEmbed:"رابط و إدراج",empty:"لم يتم تعيين رابط"},lineEditor:{edit:"تحرير السطر",exit:"الخروج من المُحرر"},elementLock:{lock:"قفل",unlock:"فتح",lockAll:"قفل الكل",unlockAll:"فتح الكل"},statusPublished:"نُشر",sidebarLock:"إبقاء الشريط الجانبي مفتوح",selectAllElementsInFrame:"تحديد جميع العناصر في الإطار",removeAllElementsFromFrame:"إزالة جميع العناصر من الإطار",eyeDropper:"اختيار اللون من القماش",textToDiagram:"",prompt:""},A={noItems:"لا توجد عناصر أضيفت بعد...",hint_emptyLibrary:"حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.",hint_emptyPrivateLibrary:"حدد عنصر على القماش لإضافته هنا."},e={clearReset:"إعادة تعيين اللوحة",exportJSON:"صدر الملف",exportImage:"تصدير الصورة...",export:"حفظ إلى...",copyToClipboard:"نسخ إلى الحافظة",save:"احفظ للملف الحالي",saveAs:"حفظ كـ",load:"فتح",getShareableLink:"احصل على رابط المشاركة",close:"غلق",selectLanguage:"اختر اللغة",scrollBackToContent:"الرجوع إلى المحتوى",zoomIn:"تكبير",zoomOut:"تصغير",resetZoom:"إعادة تعيين الشاشة",menu:"القائمة",done:"تم",edit:"تعديل",undo:"تراجع",redo:"إعادة تنفيذ",resetLibrary:"إعادة ضبط المكتبة",createNewRoom:"إنشاء غرفة جديدة",fullScreen:"شاشة كاملة",darkMode:"الوضع المظلم",lightMode:"الوضع المضيء",zenMode:"وضع التأمل",objectsSnapMode:"التقط إلى العناصر",exitZenMode:"إلغاء الوضع الليلى",cancel:"إلغاء",clear:"مسح",remove:"إزالة",embed:"تبديل الإدراج",publishLibrary:"انشر",submit:"أرسل",confirm:"تأكيد",embeddableInteractionButton:"اضغط للتفاعل"},a={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
2
2
 
3
3
  (إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:"تعذر إضافة العنصر للمكتبة",errorRemovingFromLibrary:"تعذر إزالة العنصر من المكتبة",confirmAddLibrary:"هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟",imageDoesNotContainScene:"يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟",cannotRestoreFromImage:"تعذر استعادة المشهد من ملف الصورة",invalidSceneUrl:"تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.",resetLibrary:"هذا سوف يمسح مكتبتك. هل أنت متأكد؟",removeItemsFromsLibrary:"حذف {{count}} عنصر (عناصر) من المكتبة؟",invalidEncryptionKey:"مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.",collabOfflineWarning:`لا يوجد اتصال بالانترنت.
4
4
  لن يتم حفظ التغييرات التي قمت بها!`},r={unsupportedFileType:"نوع الملف غير مدعوم.",imageInsertError:"تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...",fileTooBig:"الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.",svgImageInsertError:"تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.",failedToFetchImage:"",invalidSVGString:"SVG غير صالح.",cannotResolveCollabServer:"تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.",importLibraryError:"تعذر تحميل المكتبة",collabSaveFailed:"تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.",collabSaveFailed_sizeExceeded:"تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.",imageToolNotSupported:"",brave_measure_text_error:{line1:"يبدو أنك تستخدم متصفح Brave مع إعداد <bold>حظر صارم لتتبع البصمة</bold>.",line2:"قد يؤدي هذا إلى كسر <bold>عناصر النص</bold> في الرسومات الخاصة بك.",line3:"من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع <link>هذه الخطوات</link> لفعل ذلك.",line4:"إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة <issueLink>بلاغ</issueLink> على حسابنا في GitHub، أو راسلنا على <discordLink>Discord</discordLink>"},libraryElementTypeError:{embeddable:"لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.",iframe:"",image:"سوف يتم دعم إضافة صور إلى المكتبة قريباً!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},o={selection:"تحديد",image:"إدراج صورة",rectangle:"مستطيل",diamond:"مضلع",ellipse:"دائرة",arrow:"سهم",line:"خط",freedraw:"رسم",text:"نص",library:"مكتبة",lock:"الحفاظ على أداة التحديد نشطة بعد الرسم",penMode:"وضع القلم - امنع اللمس",link:"إضافة/تحديث الرابط للشكل المحدد",eraser:"ممحاة",frame:"أداة الإطار",magicframe:"",embeddable:"تضمين ويب",laser:"مؤشر ليزر",hand:"يد (أداة الإزاحة)",extraTools:"المزيد من أﻷدوات",mermaidToExcalidraw:"",magicSettings:""},t={canvasActions:"إجراءات اللوحة",selectedShapeActions:"إجراءات الشكل المحدد",shapes:"الأشكال"},i={canvasPanning:"لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد",linearElement:"انقر لبدء نقاط متعددة، اسحب لخط واحد",freeDraw:"انقر واسحب، افرج عند الانتهاء",text:"نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار",embeddable:"اضغط مع السحب لإنشاء موقع ويب مضمّن",text_selected:"انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص",text_editing:"اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل",linearElementMulti:"انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء",lockAngle:"يمكنك تقييد الزاوية بالضغط على SHIFT",resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم،