lookatstudy-mobile 0.26.0 → 0.27.0

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 (134) hide show
  1. package/package.json +1 -1
  2. package/server.cjs +84 -16
  3. package/web/assets/{CanvasStage-sR8T2IFn.js → CanvasStage-DNMSEgol.js} +1 -1
  4. package/web/assets/{CommandPalette-xoHRtFTt.js → CommandPalette-DOGHfdG5.js} +1 -1
  5. package/web/assets/{CourseSearchPanel-Blz5uOZo.js → CourseSearchPanel-Bkbkr4aJ.js} +1 -1
  6. package/web/assets/{ExamView-DcD9-XhK.js → ExamView-BCVCCOa3.js} +1 -1
  7. package/web/assets/{ReviewPanel-DPX_Gbvn.js → ReviewPanel-DPKPl7CY.js} +1 -1
  8. package/web/assets/{SettingsView-DpSiGIUo.js → SettingsView-ClaF3_aU.js} +2 -2
  9. package/web/assets/{VoicePanel-BFuMIduE.js → VoicePanel-CekOlcc8.js} +1 -1
  10. package/web/assets/{abnfDiagram-N423BO3Z-BRYm-LZF.js → abnfDiagram-N423BO3Z-DOQZb2xo.js} +1 -1
  11. package/web/assets/{abnfDiagram-VCTEODGH-ODA7YWAP-B--kWzEh.js → abnfDiagram-VCTEODGH-ODA7YWAP-CsHfYWvv.js} +1 -1
  12. package/web/assets/{architectureDiagram-5GKGNRK7-C4PU3XN7-DzOQ5fo_.js → architectureDiagram-5GKGNRK7-C4PU3XN7-6iVsZX0_.js} +1 -1
  13. package/web/assets/{architectureDiagram-T3A2C74G-BhljJtMX.js → architectureDiagram-T3A2C74G-P3yKV-lr.js} +1 -1
  14. package/web/assets/{arrow-right-DtCWRkvj.js → arrow-right-qKdXLzu6.js} +1 -1
  15. package/web/assets/{blockDiagram-NRAW4CY4-UMJ6PMQQ-D3KXfJhJ.js → blockDiagram-NRAW4CY4-UMJ6PMQQ-CuM6trsc.js} +1 -1
  16. package/web/assets/{blockDiagram-VBNYF7ZC-Dr7ZTeLw.js → blockDiagram-VBNYF7ZC-DDk2YbO6.js} +1 -1
  17. package/web/assets/{c4Diagram-5PPSVZJV-CPi9fgO4.js → c4Diagram-5PPSVZJV-j2ZUscpm.js} +1 -1
  18. package/web/assets/{c4Diagram-UCG6FXSJ-75X3U2P3-Bj0Dw0IT.js → c4Diagram-UCG6FXSJ-75X3U2P3-BhXwa2_0.js} +1 -1
  19. package/web/assets/channel-EEfL6EAQ.js +1 -0
  20. package/web/assets/{chunk-2GRJ4B5K-DeZ82qe7.js → chunk-2GRJ4B5K-BTFty44j.js} +1 -1
  21. package/web/assets/{chunk-2Q5K7J3B-B1WwbyzY.js → chunk-2Q5K7J3B-C5fvA7Eq.js} +1 -1
  22. package/web/assets/{chunk-5RXB4S5H-BX9ZzOwO.js → chunk-5RXB4S5H-WV8esdcK.js} +1 -1
  23. package/web/assets/{chunk-5VM5RSS4-9-QvfnU2.js → chunk-5VM5RSS4-BoBIDUCk.js} +1 -1
  24. package/web/assets/{chunk-6Q2QTUOP-Dkt-zdDg.js → chunk-6Q2QTUOP-Cs0KaQW0.js} +1 -1
  25. package/web/assets/{chunk-7XDTSPCN-DOxJ22Ws.js → chunk-7XDTSPCN-DDQpQZsI.js} +1 -1
  26. package/web/assets/{chunk-CTNIYPP6-2D6eMEGx.js → chunk-CTNIYPP6-BPadHbsN.js} +1 -1
  27. package/web/assets/{chunk-CXNFBKHE-BETxgCVr.js → chunk-CXNFBKHE-SHnvUt_i.js} +1 -1
  28. package/web/assets/{chunk-GF5L2VYU-JBwf_TWs.js → chunk-GF5L2VYU-c12C7v89.js} +1 -1
  29. package/web/assets/{chunk-ISA7TJRJ-DGTMMKAm.js → chunk-ISA7TJRJ-ClMVde_-.js} +1 -1
  30. package/web/assets/{chunk-JWPE2WC7-B_A1as9r.js → chunk-JWPE2WC7-ClPRM8pm.js} +1 -1
  31. package/web/assets/{chunk-KBJHAD2P-bmR9qwSi.js → chunk-KBJHAD2P-DZ7EZEZb.js} +1 -1
  32. package/web/assets/{chunk-LV3HUYFY-D8UFu3pb.js → chunk-LV3HUYFY-4aPtOCBm.js} +1 -1
  33. package/web/assets/{chunk-M3IUQBOH-r4ZZKIWR.js → chunk-M3IUQBOH-DBU52Xr6.js} +1 -1
  34. package/web/assets/{chunk-NDIOYS4C-BuC155ii.js → chunk-NDIOYS4C-DQmxBw-x.js} +1 -1
  35. package/web/assets/{chunk-RE4WF27V-DJoYieaa.js → chunk-RE4WF27V-RhzmIq0E.js} +1 -1
  36. package/web/assets/{chunk-RYQCIY6F-DNF6lO1-.js → chunk-RYQCIY6F-UooxVkfM.js} +1 -1
  37. package/web/assets/{chunk-VII2H2IX-DBudi9Y-.js → chunk-VII2H2IX-D5rI4IMH.js} +1 -1
  38. package/web/assets/{chunk-X5GNSKZ3-Dzcgoim8.js → chunk-X5GNSKZ3-BbHeF3fC.js} +1 -1
  39. package/web/assets/{chunk-XCWWM2C3-3YSDgOL-.js → chunk-XCWWM2C3-BfWmJ7To.js} +1 -1
  40. package/web/assets/{chunk-XXDRQBXY-B5LLJm9i.js → chunk-XXDRQBXY-DQhvlU9n.js} +1 -1
  41. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-DCqwWJZy.js +1 -0
  42. package/web/assets/classDiagram-JCYQIIEL-B1aHEwO7.js +1 -0
  43. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-DCqwWJZy.js +1 -0
  44. package/web/assets/classDiagram-v2-OCEON4UE-B1aHEwO7.js +1 -0
  45. package/web/assets/{core-Cf-iwesp.js → core-D-c45hIK.js} +1 -1
  46. package/web/assets/{cose-bilkent-JH36ORCC-DweZYTE6.js → cose-bilkent-JH36ORCC-BeMdpuaR.js} +1 -1
  47. package/web/assets/{cose-bilkent-JH36ORCC-OB24KH3T-D3S0f4LW.js → cose-bilkent-JH36ORCC-OB24KH3T-CSWmzMOB.js} +1 -1
  48. package/web/assets/{cynefin-OW5HDTMX-GVF3BKWE-DrtBkvjj.js → cynefin-OW5HDTMX-GVF3BKWE-Lm-LiSAP.js} +1 -1
  49. package/web/assets/{cynefin-VYW2F7L2-lYm8p8qp.js → cynefin-VYW2F7L2-YHGLBbI5.js} +1 -1
  50. package/web/assets/{cynefinDiagram-5FMLGOSQ-H3WIRU3N-CGurIKbY.js → cynefinDiagram-5FMLGOSQ-H3WIRU3N-7Vh1ZSti.js} +1 -1
  51. package/web/assets/{cynefinDiagram-MW4NZA55-EMZxCSzT.js → cynefinDiagram-MW4NZA55-DkK5YHvu.js} +1 -1
  52. package/web/assets/{dagre-3AP2YEHR-DCERTXHT-B3xLLC4U.js → dagre-3AP2YEHR-DCERTXHT-BJn7VnK1.js} +1 -1
  53. package/web/assets/{dagre-VZM6K2ZE-lqYJ3WXC.js → dagre-VZM6K2ZE-CQyP5qUi.js} +1 -1
  54. package/web/assets/{diagram-7IWD3JNH-DXSSf7q4.js → diagram-7IWD3JNH-DXm677-d.js} +1 -1
  55. package/web/assets/{diagram-B4RE2ZJO-ak7sOZ19.js → diagram-B4RE2ZJO-BIMQ0oLa.js} +1 -1
  56. package/web/assets/{diagram-LBJQPF4R-XmQxOAH-.js → diagram-LBJQPF4R-PFvTKOya.js} +1 -1
  57. package/web/assets/{diagram-Q27KOJAE-D-yQEvjN.js → diagram-Q27KOJAE-B1Tmb6Ku.js} +1 -1
  58. package/web/assets/{diagram-S7CK7UJ4-MULGZGEL-D5WNGIG9.js → diagram-S7CK7UJ4-MULGZGEL-C5zy1zA4.js} +1 -1
  59. package/web/assets/{diagram-UB23O5K3-CRgze-MQ.js → diagram-UB23O5K3-D-4ppWGw.js} +1 -1
  60. package/web/assets/{diagram-UQ7AKVKN-YQBY353J-CSvMx1Fm.js → diagram-UQ7AKVKN-YQBY353J-BbpzDiip.js} +1 -1
  61. package/web/assets/{diagram-VSXAHHWV-WLNH2ELY-DMVZ0M5s.js → diagram-VSXAHHWV-WLNH2ELY-bsM84BZx.js} +1 -1
  62. package/web/assets/{diagram-VX7I27RA-XW6YQV5G-NONTq7mV.js → diagram-VX7I27RA-XW6YQV5G-X-rdKlI6.js} +1 -1
  63. package/web/assets/{diagram-Z3DM3KII-HG7RF65D-D0VfGCJh.js → diagram-Z3DM3KII-HG7RF65D-D7MWxwSv.js} +1 -1
  64. package/web/assets/{ebnfDiagram-BXEA7PRR-D0k0RumW.js → ebnfDiagram-BXEA7PRR-DoiZT1RV.js} +1 -1
  65. package/web/assets/{ebnfDiagram-PWID7BFC-OKY4VHYD-By7cMb-m.js → ebnfDiagram-PWID7BFC-OKY4VHYD-BQRttaG7.js} +1 -1
  66. package/web/assets/{erDiagram-JOGREHBK-DxDlKHXu.js → erDiagram-JOGREHBK-CnX8nBDP.js} +1 -1
  67. package/web/assets/{erDiagram-SSCWMZ5O-PIPKOIK7-DwWrIKUB.js → erDiagram-SSCWMZ5O-PIPKOIK7-Dwtqeon0.js} +1 -1
  68. package/web/assets/{flowDiagram-A5DVABFB-2Z4AVO5R-eqJKcw9W.js → flowDiagram-A5DVABFB-2Z4AVO5R-Bi0_af-o.js} +1 -1
  69. package/web/assets/{flowDiagram-UKHOOZJN-CC84JD3t.js → flowDiagram-UKHOOZJN-6bJKKprv.js} +1 -1
  70. package/web/assets/{ganttDiagram-EL5Y4UJY-JZNG7GOG-CWOtJ46k.js → ganttDiagram-EL5Y4UJY-JZNG7GOG-BnL73nRe.js} +1 -1
  71. package/web/assets/{ganttDiagram-PKOTCBZU-Bw78KC7C.js → ganttDiagram-PKOTCBZU-thux7v5c.js} +1 -1
  72. package/web/assets/{gitGraphDiagram-DS77QQ5N-CywKDUgv.js → gitGraphDiagram-DS77QQ5N-BCxwGbEn.js} +1 -1
  73. package/web/assets/{gitGraphDiagram-WWUBYQGX-DMWMLL3G-DIUZBjRH.js → gitGraphDiagram-WWUBYQGX-DMWMLL3G-BfjGgW9v.js} +1 -1
  74. package/web/assets/{index-CAFnQS2L.js → index-DGtU5wXR.js} +1 -1
  75. package/web/assets/{index-BLO7CDRf.js → index-DomuSTqN.js} +1 -1
  76. package/web/assets/{index-WF4B6heO.js → index-FXb7NZ5E.js} +3 -3
  77. package/web/assets/{infoDiagram-6WML65LV-DFCB1zK_.js → infoDiagram-6WML65LV-DFa_1TEH.js} +1 -1
  78. package/web/assets/{infoDiagram-RXCK75RN-HANS5KVC-CR0XCzL1.js → infoDiagram-RXCK75RN-HANS5KVC-DUY1MiV5.js} +1 -1
  79. package/web/assets/{ishikawaDiagram-5VMMS53U-7GCIT7WU-BQmMapB0.js → ishikawaDiagram-5VMMS53U-7GCIT7WU-BEdK9djl.js} +1 -1
  80. package/web/assets/{ishikawaDiagram-WSZJBQD7-CDVYsb8F.js → ishikawaDiagram-WSZJBQD7-5tTWoDBo.js} +1 -1
  81. package/web/assets/{journeyDiagram-EYS64GPL-OAPELBT7-Bv57BEbI.js → journeyDiagram-EYS64GPL-OAPELBT7-UNEI_RjL.js} +1 -1
  82. package/web/assets/{journeyDiagram-NVQOT4AX-BUhHhw49.js → journeyDiagram-NVQOT4AX-CukB8z5f.js} +1 -1
  83. package/web/assets/{kanban-definition-27J2QSJJ-DJWi_jsV.js → kanban-definition-27J2QSJJ-B4iZSiYt.js} +1 -1
  84. package/web/assets/{kanban-definition-3QL26DDD-I7RKWQQY-DeQuTmff.js → kanban-definition-3QL26DDD-I7RKWQQY-BB4W5u2i.js} +1 -1
  85. package/web/assets/{katex-N6JRN4PM-CsmS8bAu.js → katex-N6JRN4PM-CnmSKTP0.js} +1 -1
  86. package/web/assets/{main-Bkgg11ZB.js → main-R_XeRh0m.js} +6 -6
  87. package/web/assets/{mermaid-layout-elk.core-DDX9gcIM.js → mermaid-layout-elk.core-CO-HyDSW.js} +2 -2
  88. package/web/assets/{mermaid.core-D0rh4nEj.js → mermaid.core-BHx7xkjm.js} +4 -4
  89. package/web/assets/{mindmap-definition-FAOFIHXS-nqKMiE2n.js → mindmap-definition-FAOFIHXS-BFnPDy2J.js} +1 -1
  90. package/web/assets/{mindmap-definition-FBJOCRG2-KIYZG64Y-CgkstHv4.js → mindmap-definition-FBJOCRG2-KIYZG64Y-CjtYO_dt.js} +1 -1
  91. package/web/assets/{pegDiagram-VL7TDLO6-Cy8v2veR.js → pegDiagram-VL7TDLO6-CJcrVsXf.js} +1 -1
  92. package/web/assets/{pegDiagram-XKGWAZYB-OIP57N6J-DHOcOx86.js → pegDiagram-XKGWAZYB-OIP57N6J-BUrEZLtC.js} +1 -1
  93. package/web/assets/{pieDiagram-7S7Q4E2Y-D2e6HI5F.js → pieDiagram-7S7Q4E2Y-C-7bL99T.js} +1 -1
  94. package/web/assets/{pieDiagram-E7YTZNPT-2UOTW327-9oqFgJEQ.js → pieDiagram-E7YTZNPT-2UOTW327-BbnFcXfp.js} +1 -1
  95. package/web/assets/{quadrantDiagram-AXDQQJYC-SN3ASJJK-aRI00491.js → quadrantDiagram-AXDQQJYC-SN3ASJJK-Cw3ovD9g.js} +1 -1
  96. package/web/assets/{quadrantDiagram-CIZ2JOQS-BxVU5r4V.js → quadrantDiagram-CIZ2JOQS-CZAcVKAt.js} +1 -1
  97. package/web/assets/{railroadDiagram-AXF67PYL-CxcdKdyz.js → railroadDiagram-AXF67PYL-D0VcOl3S.js} +1 -1
  98. package/web/assets/{railroadDiagram-O6MQD6OU-34742W6X-82y7OitY.js → railroadDiagram-O6MQD6OU-34742W6X-BZgG3Coc.js} +1 -1
  99. package/web/assets/{render-O7CIS3YK-0coM2jiE.js → render-O7CIS3YK-C7OYYEUs.js} +7 -7
  100. package/web/assets/{requirementDiagram-EFPCY7ZU-NGAFFSMB-CiCBt9Q_.js → requirementDiagram-EFPCY7ZU-NGAFFSMB-C7esBPmA.js} +1 -1
  101. package/web/assets/{requirementDiagram-LRYGKXZP-a-jqBbh4.js → requirementDiagram-LRYGKXZP-BrcTMfVw.js} +1 -1
  102. package/web/assets/{rotate-ccw-DPfbZXyQ.js → rotate-ccw-Dx5d1uPC.js} +1 -1
  103. package/web/assets/{sankeyDiagram-P5KCCOFB-3D3M4XPB-vVOpmIBk.js → sankeyDiagram-P5KCCOFB-3D3M4XPB-DFimNIgR.js} +1 -1
  104. package/web/assets/{sankeyDiagram-W5VNT64P-CXBDBsJf.js → sankeyDiagram-W5VNT64P-CSwlW6BG.js} +1 -1
  105. package/web/assets/{sequenceDiagram-SI44F4Z6-BEzEovun.js → sequenceDiagram-SI44F4Z6-CUpSf2Hy.js} +1 -1
  106. package/web/assets/{sequenceDiagram-WJ2MYXX4-Q2IOPB4R-BAt30Hjd.js → sequenceDiagram-WJ2MYXX4-Q2IOPB4R-CcL0Mjkm.js} +1 -1
  107. package/web/assets/{sizeCapture-X5ZJPWSS-PSGVOMYM-DPuPQlRM.js → sizeCapture-X5ZJPWSS-PSGVOMYM-CFIpsewj.js} +1 -1
  108. package/web/assets/{sizeCapture-X5ZJPWSS-CqVF9LHS.js → sizeCapture-X5ZJPWSS-bAjmXhCP.js} +1 -1
  109. package/web/assets/{stateDiagram-HBIQ2CUA-4M2S6MAN-DnF-bmgm.js → stateDiagram-HBIQ2CUA-4M2S6MAN-5J1mWHrR.js} +1 -1
  110. package/web/assets/{stateDiagram-OKZ733FA-CKebmBa5.js → stateDiagram-OKZ733FA-DC5gG091.js} +1 -1
  111. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-lEbj38VR.js +1 -0
  112. package/web/assets/stateDiagram-v2-UEYNNEHI-BvX77KlN.js +1 -0
  113. package/web/assets/{swimlanes-SLNWSIFB-M10HmJH-.js → swimlanes-SLNWSIFB-nPJNxth4.js} +2 -2
  114. package/web/assets/{swimlanes-XN3QIQJK-N6N2CCQ6-DzcOR4_D.js → swimlanes-XN3QIQJK-N6N2CCQ6-C4FhSjwI.js} +1 -1
  115. package/web/assets/swimlanesDiagram-ULZ7WXOC-Om5gw3wr.js +8 -0
  116. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-DEr_rxab.js +8 -0
  117. package/web/assets/{timeline-definition-24CTP7MA-KN7RSRVM-CMhLQnxM.js → timeline-definition-24CTP7MA-KN7RSRVM-O4kuzgM9.js} +1 -1
  118. package/web/assets/{timeline-definition-Z64GVDOM-LcGdwXI-.js → timeline-definition-Z64GVDOM-BWZEztQm.js} +1 -1
  119. package/web/assets/{vennDiagram-4TSXK5OY-AKJ7LXAN-CKicd48A.js → vennDiagram-4TSXK5OY-AKJ7LXAN-D2CR92HA.js} +1 -1
  120. package/web/assets/{vennDiagram-T6HMQDX7-D7hxv4W7.js → vennDiagram-T6HMQDX7-kk8VvKob.js} +1 -1
  121. package/web/assets/{wardleyDiagram-T6FBY63Y-DnTzvRkP.js → wardleyDiagram-T6FBY63Y-CMOhwu7j.js} +1 -1
  122. package/web/assets/{wardleyDiagram-VM6X3IG4-3B6A3BN5-CBmbko0H.js → wardleyDiagram-VM6X3IG4-3B6A3BN5-CNMnxTE2.js} +1 -1
  123. package/web/assets/{xychartDiagram-ELKLHX3M-B1fLmbSX.js → xychartDiagram-ELKLHX3M-BdhS5zr6.js} +1 -1
  124. package/web/assets/{xychartDiagram-S5SC5T6Z-OBDNV6WG-D1kFCVEP.js → xychartDiagram-S5SC5T6Z-OBDNV6WG-BgRm-vdy.js} +1 -1
  125. package/web/index.html +1 -1
  126. package/web/assets/channel-aqWuF1WT.js +0 -1
  127. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-DhFaZ76j.js +0 -1
  128. package/web/assets/classDiagram-JCYQIIEL-CNvSQ-RA.js +0 -1
  129. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-DhFaZ76j.js +0 -1
  130. package/web/assets/classDiagram-v2-OCEON4UE-CNvSQ-RA.js +0 -1
  131. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-BLTGkUFQ.js +0 -1
  132. package/web/assets/stateDiagram-v2-UEYNNEHI-BLjk4IRo.js +0 -1
  133. package/web/assets/swimlanesDiagram-ULZ7WXOC-DCxkAVHU.js +0 -8
  134. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-JLTPHNIv.js +0 -8
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CourseSearchPanel-Blz5uOZo.js","./index-BNNZmZ7L.js","./index-Coa1vpTG.css","./index-BLO7CDRf.js","./index-CAFnQS2L.js","./cpp-DddhVWhK.js","./c-BIGW1oBm.js","./ruby-B6QtyW_S.js","./html-pp8916En.js","./javascript-wDzz0qaB.js","./css-CLj8gQPS.js","./xml-sdJ4AIDG.js","./java-CylS5w8V.js","./sql-CRqJ_cUM.js","./graphql-ChdNCCLP.js","./typescript-BPQ3VLAy.js","./jsx-g9-lgVsj.js","./tsx-COt5Ahok.js","./shellscript-Yzrsuije.js","./lua-BaeVxFsk.js","./yaml-Buea-lGh.js","./php-Csjmro_R.js","./json-Cp-IABpG.js","./scss-D5BDwBP9.js","./latex-B2nUCzCX.js","./r-Cf5RLm7j.js","./vue-CHlpWS_5.js","./core-Cf-iwesp.js","./index-WF4B6heO.js","./CanvasStage-sR8T2IFn.js","./arrow-right-DtCWRkvj.js","./rotate-ccw-DPfbZXyQ.js","./ReviewPanel-DPX_Gbvn.js","./VoicePanel-BFuMIduE.js","./SettingsView-DpSiGIUo.js","./ExamView-DcD9-XhK.js","./CommandPalette-xoHRtFTt.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CourseSearchPanel-Bkbkr4aJ.js","./index-BNNZmZ7L.js","./index-Coa1vpTG.css","./index-DomuSTqN.js","./index-DGtU5wXR.js","./cpp-DddhVWhK.js","./c-BIGW1oBm.js","./ruby-B6QtyW_S.js","./html-pp8916En.js","./javascript-wDzz0qaB.js","./css-CLj8gQPS.js","./xml-sdJ4AIDG.js","./java-CylS5w8V.js","./sql-CRqJ_cUM.js","./graphql-ChdNCCLP.js","./typescript-BPQ3VLAy.js","./jsx-g9-lgVsj.js","./tsx-COt5Ahok.js","./shellscript-Yzrsuije.js","./lua-BaeVxFsk.js","./yaml-Buea-lGh.js","./php-Csjmro_R.js","./json-Cp-IABpG.js","./scss-D5BDwBP9.js","./latex-B2nUCzCX.js","./r-Cf5RLm7j.js","./vue-CHlpWS_5.js","./core-D-c45hIK.js","./index-FXb7NZ5E.js","./CanvasStage-DNMSEgol.js","./arrow-right-qKdXLzu6.js","./rotate-ccw-Dx5d1uPC.js","./ReviewPanel-DPKPl7CY.js","./VoicePanel-CekOlcc8.js","./SettingsView-ClaF3_aU.js","./ExamView-BCVCCOa3.js","./CommandPalette-DOGHfdG5.js"])))=>i.map(i=>d[i]);
2
2
  var Vg=Object.defineProperty;var qg=(e,t,n)=>t in e?Vg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ha=(e,t,n)=>qg(e,typeof t!="symbol"?t+"":t,n);import{r as w,l as $g,j as x,a as Al,g as xu,u as bu,m as Cl,c as is,n as Wg,o as bo,p as Yg,q as Gg,t as Ot,v as Kg,V as Xg,w as Qg,F as _l,x as Il,y as Zg,z as Jg,A as e1,B as Nl,D as Rl,E as t1,G as n1,H as r1,s as i1,k as Bi,I as s1,J as Ll,K as yo,M as a1,L as o1,N as Ml,O as ji,P as u1,Q as l1,R as ma,d as qt,S as Pl,T as c1,U as Dl,W as d1,X as f1,Y as h1,Z as m1,_ as p1,$ as g1,a0 as x1,a1 as Ol,a2 as Nn,a3 as b1,a4 as y1,a5 as E1,a6 as Fl,a7 as T1,a8 as v1,a9 as k1,aa as w1,ab as yu}from"./index-BNNZmZ7L.js";const S1="modulepreload",A1=function(e,t){return new URL(e,t).href},Bl={},Se=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const o=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),l=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));s=a(n.map(c=>{if(c=A1(c,r),c in Bl)return;Bl[c]=!0;const f=c.endsWith(".css"),h=f?'[rel="stylesheet"]':"";if(!!r)for(let p=o.length-1;p>=0;p--){const g=o[p];if(g.href===c&&(!f||g.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const m=document.createElement("link");if(m.rel=f?"stylesheet":S1,f||(m.as="script"),m.crossOrigin="",m.href=c,l&&m.setAttribute("nonce",l),document.head.appendChild(m),f)return new Promise((p,g)=>{m.addEventListener("load",p),m.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return s.then(a=>{for(const o of a||[])o.status==="rejected"&&i(o.reason);return t().catch(i)})};/**
3
3
  * @license lucide-react v0.468.0 - ISC
4
4
  *
@@ -409,7 +409,7 @@ Based on my performance, decide what comes next: explain why I got questions wro
409
409
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
410
410
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
411
411
  * THE SOFTWARE.
412
- */var Nx=as.exports,ql;function Rx(){return ql||(ql=1,(function(e,t){(function(r,s){e.exports=s()})(Nx,function(){return(function(n){var r={};function s(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return n[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}return s.m=n,s.c=r,s.d=function(i,a,o){s.o(i,a)||Object.defineProperty(i,a,{enumerable:!0,get:o})},s.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},s.t=function(i,a){if(a&1&&(i=s(i)),a&8||a&4&&typeof i=="object"&&i&&i.__esModule)return i;var o=Object.create(null);if(s.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:i}),a&2&&typeof i!="string")for(var u in i)s.d(o,u,(function(l){return i[l]}).bind(null,u));return o},s.n=function(i){var a=i&&i.__esModule?function(){return i.default}:function(){return i};return s.d(a,"a",a),a},s.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},s.p="",s(s.s=20)})([(function(n,r){var s={};n.exports=s,(function(){s._baseDelta=1e3/60,s._nextId=0,s._seed=0,s._nowStartTime=+new Date,s._warnedOnce={},s._decomp=null,s.extend=function(a,o){var u,l;typeof o=="boolean"?(u=2,l=o):(u=1,l=!0);for(var c=u;c<arguments.length;c++){var f=arguments[c];if(f)for(var h in f)l&&f[h]&&f[h].constructor===Object&&(!a[h]||a[h].constructor===Object)?(a[h]=a[h]||{},s.extend(a[h],l,f[h])):a[h]=f[h]}return a},s.clone=function(a,o){return s.extend({},o,a)},s.keys=function(a){if(Object.keys)return Object.keys(a);var o=[];for(var u in a)o.push(u);return o},s.values=function(a){var o=[];if(Object.keys){for(var u=Object.keys(a),l=0;l<u.length;l++)o.push(a[u[l]]);return o}for(var c in a)o.push(a[c]);return o},s.get=function(a,o,u,l){o=o.split(".").slice(u,l);for(var c=0;c<o.length;c+=1)a=a[o[c]];return a},s.set=function(a,o,u,l,c){var f=o.split(".").slice(l,c);return s.get(a,o,0,-1)[f[f.length-1]]=u,u},s.shuffle=function(a){for(var o=a.length-1;o>0;o--){var u=Math.floor(s.random()*(o+1)),l=a[o];a[o]=a[u],a[u]=l}return a},s.choose=function(a){return a[Math.floor(s.random()*a.length)]},s.isElement=function(a){return typeof HTMLElement<"u"?a instanceof HTMLElement:!!(a&&a.nodeType&&a.nodeName)},s.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"},s.isFunction=function(a){return typeof a=="function"},s.isPlainObject=function(a){return typeof a=="object"&&a.constructor===Object},s.isString=function(a){return toString.call(a)==="[object String]"},s.clamp=function(a,o,u){return a<o?o:a>u?u:a},s.sign=function(a){return a<0?-1:1},s.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-s._nowStartTime},s.random=function(a,o){return a=typeof a<"u"?a:0,o=typeof o<"u"?o:1,a+i()*(o-a)};var i=function(){return s._seed=(s._seed*9301+49297)%233280,s._seed/233280};s.colorToNumber=function(a){return a=a.replace("#",""),a.length==3&&(a=a.charAt(0)+a.charAt(0)+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)),parseInt(a,16)},s.logLevel=1,s.log=function(){console&&s.logLevel>0&&s.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.info=function(){console&&s.logLevel>0&&s.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.warn=function(){console&&s.logLevel>0&&s.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.warnOnce=function(){var a=Array.prototype.slice.call(arguments).join(" ");s._warnedOnce[a]||(s.warn(a),s._warnedOnce[a]=!0)},s.deprecated=function(a,o,u){a[o]=s.chain(function(){s.warnOnce("🔅 deprecated 🔅",u)},a[o])},s.nextId=function(){return s._nextId++},s.indexOf=function(a,o){if(a.indexOf)return a.indexOf(o);for(var u=0;u<a.length;u++)if(a[u]===o)return u;return-1},s.map=function(a,o){if(a.map)return a.map(o);for(var u=[],l=0;l<a.length;l+=1)u.push(o(a[l]));return u},s.topologicalSort=function(a){var o=[],u=[],l=[];for(var c in a)!u[c]&&!l[c]&&s._topologicalSort(c,u,l,a,o);return o},s._topologicalSort=function(a,o,u,l,c){var f=l[a]||[];u[a]=!0;for(var h=0;h<f.length;h+=1){var d=f[h];u[d]||o[d]||s._topologicalSort(d,o,u,l,c)}u[a]=!1,o[a]=!0,c.push(a)},s.chain=function(){for(var a=[],o=0;o<arguments.length;o+=1){var u=arguments[o];u._chained?a.push.apply(a,u._chained):a.push(u)}var l=function(){for(var c,f=new Array(arguments.length),h=0,d=arguments.length;h<d;h++)f[h]=arguments[h];for(h=0;h<a.length;h+=1){var m=a[h].apply(c,f);typeof m<"u"&&(c=m)}return c};return l._chained=a,l},s.chainPathBefore=function(a,o,u){return s.set(a,o,s.chain(u,s.get(a,o)))},s.chainPathAfter=function(a,o,u){return s.set(a,o,s.chain(s.get(a,o),u))},s.setDecomp=function(a){s._decomp=a},s.getDecomp=function(){var a=s._decomp;try{!a&&typeof window<"u"&&(a=window.decomp),!a&&typeof Al<"u"&&(a=Al.decomp)}catch{a=null}return a}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i){var a={min:{x:0,y:0},max:{x:0,y:0}};return i&&s.update(a,i),a},s.update=function(i,a,o){i.min.x=1/0,i.max.x=-1/0,i.min.y=1/0,i.max.y=-1/0;for(var u=0;u<a.length;u++){var l=a[u];l.x>i.max.x&&(i.max.x=l.x),l.x<i.min.x&&(i.min.x=l.x),l.y>i.max.y&&(i.max.y=l.y),l.y<i.min.y&&(i.min.y=l.y)}o&&(o.x>0?i.max.x+=o.x:i.min.x+=o.x,o.y>0?i.max.y+=o.y:i.min.y+=o.y)},s.contains=function(i,a){return a.x>=i.min.x&&a.x<=i.max.x&&a.y>=i.min.y&&a.y<=i.max.y},s.overlaps=function(i,a){return i.min.x<=a.max.x&&i.max.x>=a.min.x&&i.max.y>=a.min.y&&i.min.y<=a.max.y},s.translate=function(i,a){i.min.x+=a.x,i.max.x+=a.x,i.min.y+=a.y,i.max.y+=a.y},s.shift=function(i,a){var o=i.max.x-i.min.x,u=i.max.y-i.min.y;i.min.x=a.x,i.max.x=a.x+o,i.min.y=a.y,i.max.y=a.y+u}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i,a){return{x:i||0,y:a||0}},s.clone=function(i){return{x:i.x,y:i.y}},s.magnitude=function(i){return Math.sqrt(i.x*i.x+i.y*i.y)},s.magnitudeSquared=function(i){return i.x*i.x+i.y*i.y},s.rotate=function(i,a,o){var u=Math.cos(a),l=Math.sin(a);o||(o={});var c=i.x*u-i.y*l;return o.y=i.x*l+i.y*u,o.x=c,o},s.rotateAbout=function(i,a,o,u){var l=Math.cos(a),c=Math.sin(a);u||(u={});var f=o.x+((i.x-o.x)*l-(i.y-o.y)*c);return u.y=o.y+((i.x-o.x)*c+(i.y-o.y)*l),u.x=f,u},s.normalise=function(i){var a=s.magnitude(i);return a===0?{x:0,y:0}:{x:i.x/a,y:i.y/a}},s.dot=function(i,a){return i.x*a.x+i.y*a.y},s.cross=function(i,a){return i.x*a.y-i.y*a.x},s.cross3=function(i,a,o){return(a.x-i.x)*(o.y-i.y)-(a.y-i.y)*(o.x-i.x)},s.add=function(i,a,o){return o||(o={}),o.x=i.x+a.x,o.y=i.y+a.y,o},s.sub=function(i,a,o){return o||(o={}),o.x=i.x-a.x,o.y=i.y-a.y,o},s.mult=function(i,a){return{x:i.x*a,y:i.y*a}},s.div=function(i,a){return{x:i.x/a,y:i.y/a}},s.perp=function(i,a){return a=a===!0?-1:1,{x:a*-i.y,y:a*i.x}},s.neg=function(i){return{x:-i.x,y:-i.y}},s.angle=function(i,a){return Math.atan2(a.y-i.y,a.x-i.x)},s._temp=[s.create(),s.create(),s.create(),s.create(),s.create(),s.create()]})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(0);(function(){i.create=function(u,l){for(var c=[],f=0;f<u.length;f++){var h=u[f],d={x:h.x,y:h.y,index:f,body:l,isInternal:!1};c.push(d)}return c},i.fromPath=function(u,l){var c=/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/ig,f=[];return u.replace(c,function(h,d,m){f.push({x:parseFloat(d),y:parseFloat(m)})}),i.create(f,l)},i.centre=function(u){for(var l=i.area(u,!0),c={x:0,y:0},f,h,d,m=0;m<u.length;m++)d=(m+1)%u.length,f=a.cross(u[m],u[d]),h=a.mult(a.add(u[m],u[d]),f),c=a.add(c,h);return a.div(c,6*l)},i.mean=function(u){for(var l={x:0,y:0},c=0;c<u.length;c++)l.x+=u[c].x,l.y+=u[c].y;return a.div(l,u.length)},i.area=function(u,l){for(var c=0,f=u.length-1,h=0;h<u.length;h++)c+=(u[f].x-u[h].x)*(u[f].y+u[h].y),f=h;return l?c/2:Math.abs(c)/2},i.inertia=function(u,l){for(var c=0,f=0,h=u,d,m,p=0;p<h.length;p++)m=(p+1)%h.length,d=Math.abs(a.cross(h[m],h[p])),c+=d*(a.dot(h[m],h[m])+a.dot(h[m],h[p])+a.dot(h[p],h[p])),f+=d;return l/6*(c/f)},i.translate=function(u,l,c){c=typeof c<"u"?c:1;var f=u.length,h=l.x*c,d=l.y*c,m;for(m=0;m<f;m++)u[m].x+=h,u[m].y+=d;return u},i.rotate=function(u,l,c){if(l!==0){var f=Math.cos(l),h=Math.sin(l),d=c.x,m=c.y,p=u.length,g,y,v,T;for(T=0;T<p;T++)g=u[T],y=g.x-d,v=g.y-m,g.x=d+(y*f-v*h),g.y=m+(y*h+v*f);return u}},i.contains=function(u,l){for(var c=l.x,f=l.y,h=u.length,d=u[h-1],m,p=0;p<h;p++){if(m=u[p],(c-d.x)*(m.y-d.y)+(f-d.y)*(d.x-m.x)>0)return!1;d=m}return!0},i.scale=function(u,l,c,f){if(l===1&&c===1)return u;f=f||i.centre(u);for(var h,d,m=0;m<u.length;m++)h=u[m],d=a.sub(h,f),u[m].x=f.x+d.x*l,u[m].y=f.y+d.y*c;return u},i.chamfer=function(u,l,c,f,h){typeof l=="number"?l=[l]:l=l||[8],c=typeof c<"u"?c:-1,f=f||2,h=h||14;for(var d=[],m=0;m<u.length;m++){var p=u[m-1>=0?m-1:u.length-1],g=u[m],y=u[(m+1)%u.length],v=l[m<l.length?m:l.length-1];if(v===0){d.push(g);continue}var T=a.normalise({x:g.y-p.y,y:p.x-g.x}),C=a.normalise({x:y.y-g.y,y:g.x-y.x}),E=Math.sqrt(2*Math.pow(v,2)),k=a.mult(o.clone(T),v),_=a.normalise(a.mult(a.add(T,C),.5)),A=a.sub(g,a.mult(_,E)),I=c;c===-1&&(I=Math.pow(v,.32)*1.75),I=o.clamp(I,f,h),I%2===1&&(I+=1);for(var S=Math.acos(a.dot(T,C)),M=S/I,N=0;N<I;N++)d.push(a.add(a.rotate(k,M*N),A))}return d},i.clockwiseSort=function(u){var l=i.mean(u);return u.sort(function(c,f){return a.angle(l,c)-a.angle(l,f)}),u},i.isConvex=function(u){var l=0,c=u.length,f,h,d,m;if(c<3)return null;for(f=0;f<c;f++)if(h=(f+1)%c,d=(f+2)%c,m=(u[h].x-u[f].x)*(u[d].y-u[h].y),m-=(u[h].y-u[f].y)*(u[d].x-u[h].x),m<0?l|=1:m>0&&(l|=2),l===3)return!1;return l!==0?!0:null},i.hull=function(u){var l=[],c=[],f,h;for(u=u.slice(0),u.sort(function(d,m){var p=d.x-m.x;return p!==0?p:d.y-m.y}),h=0;h<u.length;h+=1){for(f=u[h];c.length>=2&&a.cross3(c[c.length-2],c[c.length-1],f)<=0;)c.pop();c.push(f)}for(h=u.length-1;h>=0;h-=1){for(f=u[h];l.length>=2&&a.cross3(l[l.length-2],l[l.length-1],f)<=0;)l.pop();l.push(f)}return l.pop(),c.pop(),l.concat(c)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(2),u=s(7),l=s(0),c=s(1),f=s(11);(function(){i._timeCorrection=!0,i._inertiaScale=4,i._nextCollidingGroupId=1,i._nextNonCollidingGroupId=-1,i._nextCategory=1,i._baseDelta=1e3/60,i.create=function(d){var m={id:l.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:a.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},p=l.extend(m,d);return h(p,d),p},i.nextGroup=function(d){return d?i._nextNonCollidingGroupId--:i._nextCollidingGroupId++},i.nextCategory=function(){return i._nextCategory=i._nextCategory<<1,i._nextCategory};var h=function(d,m){m=m||{},i.set(d,{bounds:d.bounds||c.create(d.vertices),positionPrev:d.positionPrev||o.clone(d.position),anglePrev:d.anglePrev||d.angle,vertices:d.vertices,parts:d.parts||[d],isStatic:d.isStatic,isSleeping:d.isSleeping,parent:d.parent||d}),a.rotate(d.vertices,d.angle,d.position),f.rotate(d.axes,d.angle),c.update(d.bounds,d.vertices,d.velocity),i.set(d,{axes:m.axes||d.axes,area:m.area||d.area,mass:m.mass||d.mass,inertia:m.inertia||d.inertia});var p=d.isStatic?"#14151f":l.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),g=d.isStatic?"#555":"#ccc",y=d.isStatic&&d.render.fillStyle===null?1:0;d.render.fillStyle=d.render.fillStyle||p,d.render.strokeStyle=d.render.strokeStyle||g,d.render.lineWidth=d.render.lineWidth||y,d.render.sprite.xOffset+=-(d.bounds.min.x-d.position.x)/(d.bounds.max.x-d.bounds.min.x),d.render.sprite.yOffset+=-(d.bounds.min.y-d.position.y)/(d.bounds.max.y-d.bounds.min.y)};i.set=function(d,m,p){var g;typeof m=="string"&&(g=m,m={},m[g]=p);for(g in m)if(Object.prototype.hasOwnProperty.call(m,g))switch(p=m[g],g){case"isStatic":i.setStatic(d,p);break;case"isSleeping":u.set(d,p);break;case"mass":i.setMass(d,p);break;case"density":i.setDensity(d,p);break;case"inertia":i.setInertia(d,p);break;case"vertices":i.setVertices(d,p);break;case"position":i.setPosition(d,p);break;case"angle":i.setAngle(d,p);break;case"velocity":i.setVelocity(d,p);break;case"angularVelocity":i.setAngularVelocity(d,p);break;case"speed":i.setSpeed(d,p);break;case"angularSpeed":i.setAngularSpeed(d,p);break;case"parts":i.setParts(d,p);break;case"centre":i.setCentre(d,p);break;default:d[g]=p}},i.setStatic=function(d,m){for(var p=0;p<d.parts.length;p++){var g=d.parts[p];g.isStatic=m,m?(g._original={restitution:g.restitution,friction:g.friction,mass:g.mass,inertia:g.inertia,density:g.density,inverseMass:g.inverseMass,inverseInertia:g.inverseInertia},g.restitution=0,g.friction=1,g.mass=g.inertia=g.density=1/0,g.inverseMass=g.inverseInertia=0,g.positionPrev.x=g.position.x,g.positionPrev.y=g.position.y,g.anglePrev=g.angle,g.angularVelocity=0,g.speed=0,g.angularSpeed=0,g.motion=0):g._original&&(g.restitution=g._original.restitution,g.friction=g._original.friction,g.mass=g._original.mass,g.inertia=g._original.inertia,g.density=g._original.density,g.inverseMass=g._original.inverseMass,g.inverseInertia=g._original.inverseInertia,g._original=null)}},i.setMass=function(d,m){var p=d.inertia/(d.mass/6);d.inertia=p*(m/6),d.inverseInertia=1/d.inertia,d.mass=m,d.inverseMass=1/d.mass,d.density=d.mass/d.area},i.setDensity=function(d,m){i.setMass(d,m*d.area),d.density=m},i.setInertia=function(d,m){d.inertia=m,d.inverseInertia=1/d.inertia},i.setVertices=function(d,m){m[0].body===d?d.vertices=m:d.vertices=a.create(m,d),d.axes=f.fromVertices(d.vertices),d.area=a.area(d.vertices),i.setMass(d,d.density*d.area);var p=a.centre(d.vertices);a.translate(d.vertices,p,-1),i.setInertia(d,i._inertiaScale*a.inertia(d.vertices,d.mass)),a.translate(d.vertices,d.position),c.update(d.bounds,d.vertices,d.velocity)},i.setParts=function(d,m,p){var g;for(m=m.slice(0),d.parts.length=0,d.parts.push(d),d.parent=d,g=0;g<m.length;g++){var y=m[g];y!==d&&(y.parent=d,d.parts.push(y))}if(d.parts.length!==1){if(p=typeof p<"u"?p:!0,p){var v=[];for(g=0;g<m.length;g++)v=v.concat(m[g].vertices);a.clockwiseSort(v);var T=a.hull(v),C=a.centre(T);i.setVertices(d,T),a.translate(d.vertices,C)}var E=i._totalProperties(d);d.area=E.area,d.parent=d,d.position.x=E.centre.x,d.position.y=E.centre.y,d.positionPrev.x=E.centre.x,d.positionPrev.y=E.centre.y,i.setMass(d,E.mass),i.setInertia(d,E.inertia),i.setPosition(d,E.centre)}},i.setCentre=function(d,m,p){p?(d.positionPrev.x+=m.x,d.positionPrev.y+=m.y,d.position.x+=m.x,d.position.y+=m.y):(d.positionPrev.x=m.x-(d.position.x-d.positionPrev.x),d.positionPrev.y=m.y-(d.position.y-d.positionPrev.y),d.position.x=m.x,d.position.y=m.y)},i.setPosition=function(d,m,p){var g=o.sub(m,d.position);p?(d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.velocity.x=g.x,d.velocity.y=g.y,d.speed=o.magnitude(g)):(d.positionPrev.x+=g.x,d.positionPrev.y+=g.y);for(var y=0;y<d.parts.length;y++){var v=d.parts[y];v.position.x+=g.x,v.position.y+=g.y,a.translate(v.vertices,g),c.update(v.bounds,v.vertices,d.velocity)}},i.setAngle=function(d,m,p){var g=m-d.angle;p?(d.anglePrev=d.angle,d.angularVelocity=g,d.angularSpeed=Math.abs(g)):d.anglePrev+=g;for(var y=0;y<d.parts.length;y++){var v=d.parts[y];v.angle+=g,a.rotate(v.vertices,g,d.position),f.rotate(v.axes,g),c.update(v.bounds,v.vertices,d.velocity),y>0&&o.rotateAbout(v.position,g,d.position,v.position)}},i.setVelocity=function(d,m){var p=d.deltaTime/i._baseDelta;d.positionPrev.x=d.position.x-m.x*p,d.positionPrev.y=d.position.y-m.y*p,d.velocity.x=(d.position.x-d.positionPrev.x)/p,d.velocity.y=(d.position.y-d.positionPrev.y)/p,d.speed=o.magnitude(d.velocity)},i.getVelocity=function(d){var m=i._baseDelta/d.deltaTime;return{x:(d.position.x-d.positionPrev.x)*m,y:(d.position.y-d.positionPrev.y)*m}},i.getSpeed=function(d){return o.magnitude(i.getVelocity(d))},i.setSpeed=function(d,m){i.setVelocity(d,o.mult(o.normalise(i.getVelocity(d)),m))},i.setAngularVelocity=function(d,m){var p=d.deltaTime/i._baseDelta;d.anglePrev=d.angle-m*p,d.angularVelocity=(d.angle-d.anglePrev)/p,d.angularSpeed=Math.abs(d.angularVelocity)},i.getAngularVelocity=function(d){return(d.angle-d.anglePrev)*i._baseDelta/d.deltaTime},i.getAngularSpeed=function(d){return Math.abs(i.getAngularVelocity(d))},i.setAngularSpeed=function(d,m){i.setAngularVelocity(d,l.sign(i.getAngularVelocity(d))*m)},i.translate=function(d,m,p){i.setPosition(d,o.add(d.position,m),p)},i.rotate=function(d,m,p,g){if(!p)i.setAngle(d,d.angle+m,g);else{var y=Math.cos(m),v=Math.sin(m),T=d.position.x-p.x,C=d.position.y-p.y;i.setPosition(d,{x:p.x+(T*y-C*v),y:p.y+(T*v+C*y)},g),i.setAngle(d,d.angle+m,g)}},i.scale=function(d,m,p,g){var y=0,v=0;g=g||d.position;for(var T=0;T<d.parts.length;T++){var C=d.parts[T];a.scale(C.vertices,m,p,g),C.axes=f.fromVertices(C.vertices),C.area=a.area(C.vertices),i.setMass(C,d.density*C.area),a.translate(C.vertices,{x:-C.position.x,y:-C.position.y}),i.setInertia(C,i._inertiaScale*a.inertia(C.vertices,C.mass)),a.translate(C.vertices,{x:C.position.x,y:C.position.y}),T>0&&(y+=C.area,v+=C.inertia),C.position.x=g.x+(C.position.x-g.x)*m,C.position.y=g.y+(C.position.y-g.y)*p,c.update(C.bounds,C.vertices,d.velocity)}d.parts.length>1&&(d.area=y,d.isStatic||(i.setMass(d,d.density*y),i.setInertia(d,v))),d.circleRadius&&(m===p?d.circleRadius*=m:d.circleRadius=null)},i.update=function(d,m){m=(typeof m<"u"?m:1e3/60)*d.timeScale;var p=m*m,g=i._timeCorrection?m/(d.deltaTime||m):1,y=1-d.frictionAir*(m/l._baseDelta),v=(d.position.x-d.positionPrev.x)*g,T=(d.position.y-d.positionPrev.y)*g;d.velocity.x=v*y+d.force.x/d.mass*p,d.velocity.y=T*y+d.force.y/d.mass*p,d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.position.x+=d.velocity.x,d.position.y+=d.velocity.y,d.deltaTime=m,d.angularVelocity=(d.angle-d.anglePrev)*y*g+d.torque/d.inertia*p,d.anglePrev=d.angle,d.angle+=d.angularVelocity;for(var C=0;C<d.parts.length;C++){var E=d.parts[C];a.translate(E.vertices,d.velocity),C>0&&(E.position.x+=d.velocity.x,E.position.y+=d.velocity.y),d.angularVelocity!==0&&(a.rotate(E.vertices,d.angularVelocity,d.position),f.rotate(E.axes,d.angularVelocity),C>0&&o.rotateAbout(E.position,d.angularVelocity,d.position,E.position)),c.update(E.bounds,E.vertices,d.velocity)}},i.updateVelocities=function(d){var m=i._baseDelta/d.deltaTime,p=d.velocity;p.x=(d.position.x-d.positionPrev.x)*m,p.y=(d.position.y-d.positionPrev.y)*m,d.speed=Math.sqrt(p.x*p.x+p.y*p.y),d.angularVelocity=(d.angle-d.anglePrev)*m,d.angularSpeed=Math.abs(d.angularVelocity)},i.applyForce=function(d,m,p){var g={x:m.x-d.position.x,y:m.y-d.position.y};d.force.x+=p.x,d.force.y+=p.y,d.torque+=g.x*p.y-g.y*p.x},i._totalProperties=function(d){for(var m={mass:0,area:0,inertia:0,centre:{x:0,y:0}},p=d.parts.length===1?0:1;p<d.parts.length;p++){var g=d.parts[p],y=g.mass!==1/0?g.mass:1;m.mass+=y,m.area+=g.area,m.inertia+=g.inertia,m.centre=o.add(m.centre,o.mult(g.position,y))}return m.centre=o.div(m.centre,m.mass),m}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i.on=function(o,u,l){for(var c=u.split(" "),f,h=0;h<c.length;h++)f=c[h],o.events=o.events||{},o.events[f]=o.events[f]||[],o.events[f].push(l);return l},i.off=function(o,u,l){if(!u){o.events={};return}typeof u=="function"&&(l=u,u=a.keys(o.events).join(" "));for(var c=u.split(" "),f=0;f<c.length;f++){var h=o.events[c[f]],d=[];if(l&&h)for(var m=0;m<h.length;m++)h[m]!==l&&d.push(h[m]);o.events[c[f]]=d}},i.trigger=function(o,u,l){var c,f,h,d,m=o.events;if(m&&a.keys(m).length>0){l||(l={}),c=u.split(" ");for(var p=0;p<c.length;p++)if(f=c[p],h=m[f],h){d=a.clone(l,!1),d.name=f,d.source=o;for(var g=0;g<h.length;g++)h[g].apply(o,[d])}}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(5),o=s(0),u=s(1),l=s(4);(function(){i.create=function(c){return o.extend({id:o.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},c)},i.setModified=function(c,f,h,d){if(c.isModified=f,f&&c.cache&&(c.cache.allBodies=null,c.cache.allConstraints=null,c.cache.allComposites=null),h&&c.parent&&i.setModified(c.parent,f,h,d),d)for(var m=0;m<c.composites.length;m++){var p=c.composites[m];i.setModified(p,f,h,d)}},i.add=function(c,f){var h=[].concat(f);a.trigger(c,"beforeAdd",{object:f});for(var d=0;d<h.length;d++){var m=h[d];switch(m.type){case"body":if(m.parent!==m){o.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}i.addBody(c,m);break;case"constraint":i.addConstraint(c,m);break;case"composite":i.addComposite(c,m);break;case"mouseConstraint":i.addConstraint(c,m.constraint);break}}return a.trigger(c,"afterAdd",{object:f}),c},i.remove=function(c,f,h){var d=[].concat(f);a.trigger(c,"beforeRemove",{object:f});for(var m=0;m<d.length;m++){var p=d[m];switch(p.type){case"body":i.removeBody(c,p,h);break;case"constraint":i.removeConstraint(c,p,h);break;case"composite":i.removeComposite(c,p,h);break;case"mouseConstraint":i.removeConstraint(c,p.constraint);break}}return a.trigger(c,"afterRemove",{object:f}),c},i.addComposite=function(c,f){return c.composites.push(f),f.parent=c,i.setModified(c,!0,!0,!1),c},i.removeComposite=function(c,f,h){var d=o.indexOf(c.composites,f);if(d!==-1&&i.removeCompositeAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeComposite(c.composites[m],f,!0);return c},i.removeCompositeAt=function(c,f){return c.composites.splice(f,1),i.setModified(c,!0,!0,!1),c},i.addBody=function(c,f){return c.bodies.push(f),i.setModified(c,!0,!0,!1),c},i.removeBody=function(c,f,h){var d=o.indexOf(c.bodies,f);if(d!==-1&&i.removeBodyAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeBody(c.composites[m],f,!0);return c},i.removeBodyAt=function(c,f){return c.bodies.splice(f,1),i.setModified(c,!0,!0,!1),c},i.addConstraint=function(c,f){return c.constraints.push(f),i.setModified(c,!0,!0,!1),c},i.removeConstraint=function(c,f,h){var d=o.indexOf(c.constraints,f);if(d!==-1&&i.removeConstraintAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeConstraint(c.composites[m],f,!0);return c},i.removeConstraintAt=function(c,f){return c.constraints.splice(f,1),i.setModified(c,!0,!0,!1),c},i.clear=function(c,f,h){if(h)for(var d=0;d<c.composites.length;d++)i.clear(c.composites[d],f,!0);return f?c.bodies=c.bodies.filter(function(m){return m.isStatic}):c.bodies.length=0,c.constraints.length=0,c.composites.length=0,i.setModified(c,!0,!0,!1),c},i.allBodies=function(c){if(c.cache&&c.cache.allBodies)return c.cache.allBodies;for(var f=[].concat(c.bodies),h=0;h<c.composites.length;h++)f=f.concat(i.allBodies(c.composites[h]));return c.cache&&(c.cache.allBodies=f),f},i.allConstraints=function(c){if(c.cache&&c.cache.allConstraints)return c.cache.allConstraints;for(var f=[].concat(c.constraints),h=0;h<c.composites.length;h++)f=f.concat(i.allConstraints(c.composites[h]));return c.cache&&(c.cache.allConstraints=f),f},i.allComposites=function(c){if(c.cache&&c.cache.allComposites)return c.cache.allComposites;for(var f=[].concat(c.composites),h=0;h<c.composites.length;h++)f=f.concat(i.allComposites(c.composites[h]));return c.cache&&(c.cache.allComposites=f),f},i.get=function(c,f,h){var d,m;switch(h){case"body":d=i.allBodies(c);break;case"constraint":d=i.allConstraints(c);break;case"composite":d=i.allComposites(c).concat(c);break}return d?(m=d.filter(function(p){return p.id.toString()===f.toString()}),m.length===0?null:m[0]):null},i.move=function(c,f,h){return i.remove(c,f),i.add(h,f),c},i.rebase=function(c){for(var f=i.allBodies(c).concat(i.allConstraints(c)).concat(i.allComposites(c)),h=0;h<f.length;h++)f[h].id=o.nextId();return c},i.translate=function(c,f,h){for(var d=h?i.allBodies(c):c.bodies,m=0;m<d.length;m++)l.translate(d[m],f);return c},i.rotate=function(c,f,h,d){for(var m=Math.cos(f),p=Math.sin(f),g=d?i.allBodies(c):c.bodies,y=0;y<g.length;y++){var v=g[y],T=v.position.x-h.x,C=v.position.y-h.y;l.setPosition(v,{x:h.x+(T*m-C*p),y:h.y+(T*p+C*m)}),l.rotate(v,f)}return c},i.scale=function(c,f,h,d,m){for(var p=m?i.allBodies(c):c.bodies,g=0;g<p.length;g++){var y=p[g],v=y.position.x-d.x,T=y.position.y-d.y;l.setPosition(y,{x:d.x+v*f,y:d.y+T*h}),l.scale(y,f,h)}return c},i.bounds=function(c){for(var f=i.allBodies(c),h=[],d=0;d<f.length;d+=1){var m=f[d];h.push(m.bounds.min,m.bounds.max)}return u.create(h)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(4),o=s(5),u=s(0);(function(){i._motionWakeThreshold=.18,i._motionSleepThreshold=.08,i._minBias=.9,i.update=function(l,c){for(var f=c/u._baseDelta,h=i._motionSleepThreshold,d=0;d<l.length;d++){var m=l[d],p=a.getSpeed(m),g=a.getAngularSpeed(m),y=p*p+g*g;if(m.force.x!==0||m.force.y!==0){i.set(m,!1);continue}var v=Math.min(m.motion,y),T=Math.max(m.motion,y);m.motion=i._minBias*v+(1-i._minBias)*T,m.sleepThreshold>0&&m.motion<h?(m.sleepCounter+=1,m.sleepCounter>=m.sleepThreshold/f&&i.set(m,!0)):m.sleepCounter>0&&(m.sleepCounter-=1)}},i.afterCollisions=function(l){for(var c=i._motionSleepThreshold,f=0;f<l.length;f++){var h=l[f];if(h.isActive){var d=h.collision,m=d.bodyA.parent,p=d.bodyB.parent;if(!(m.isSleeping&&p.isSleeping||m.isStatic||p.isStatic)&&(m.isSleeping||p.isSleeping)){var g=m.isSleeping&&!m.isStatic?m:p,y=g===m?p:m;!g.isStatic&&y.motion>c&&i.set(g,!1)}}}},i.set=function(l,c){var f=l.isSleeping;c?(l.isSleeping=!0,l.sleepCounter=l.sleepThreshold,l.positionImpulse.x=0,l.positionImpulse.y=0,l.positionPrev.x=l.position.x,l.positionPrev.y=l.position.y,l.anglePrev=l.angle,l.speed=0,l.angularSpeed=0,l.motion=0,f||o.trigger(l,"sleepStart")):(l.isSleeping=!1,l.sleepCounter=0,f&&o.trigger(l,"sleepEnd"))}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(9);(function(){var u=[],l={overlap:0,axis:null},c={overlap:0,axis:null};i.create=function(f,h){return{pair:null,collided:!1,bodyA:f,bodyB:h,parentA:f.parent,parentB:h.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},i.collides=function(f,h,d){if(i._overlapAxes(l,f.vertices,h.vertices,f.axes),l.overlap<=0||(i._overlapAxes(c,h.vertices,f.vertices,h.axes),c.overlap<=0))return null;var m=d&&d.table[o.id(f,h)],p;m?p=m.collision:(p=i.create(f,h),p.collided=!0,p.bodyA=f.id<h.id?f:h,p.bodyB=f.id<h.id?h:f,p.parentA=p.bodyA.parent,p.parentB=p.bodyB.parent),f=p.bodyA,h=p.bodyB;var g;l.overlap<c.overlap?g=l:g=c;var y=p.normal,v=p.supports,T=g.axis,C=T.x,E=T.y;C*(h.position.x-f.position.x)+E*(h.position.y-f.position.y)<0?(y.x=C,y.y=E):(y.x=-C,y.y=-E),p.tangent.x=-y.y,p.tangent.y=y.x,p.depth=g.overlap,p.penetration.x=y.x*p.depth,p.penetration.y=y.y*p.depth;var k=i._findSupports(f,h,y,1),_=0;if(a.contains(f.vertices,k[0])&&(v[_++]=k[0]),a.contains(f.vertices,k[1])&&(v[_++]=k[1]),_<2){var A=i._findSupports(h,f,y,-1);a.contains(h.vertices,A[0])&&(v[_++]=A[0]),_<2&&a.contains(h.vertices,A[1])&&(v[_++]=A[1])}return _===0&&(v[_++]=k[0]),v.length=_,p},i._overlapAxes=function(f,h,d,m){var p=h.length,g=d.length,y=h[0].x,v=h[0].y,T=d[0].x,C=d[0].y,E=m.length,k=Number.MAX_VALUE,_=0,A,I,S,M,N,j;for(N=0;N<E;N++){var P=m[N],L=P.x,F=P.y,V=y*L+v*F,B=T*L+C*F,q=V,R=B;for(j=1;j<p;j+=1)M=h[j].x*L+h[j].y*F,M>q?q=M:M<V&&(V=M);for(j=1;j<g;j+=1)M=d[j].x*L+d[j].y*F,M>R?R=M:M<B&&(B=M);if(I=q-B,S=R-V,A=I<S?I:S,A<k&&(k=A,_=N,A<=0))break}f.axis=m[_],f.overlap=k},i._projectToAxis=function(f,h,d){for(var m=h[0].x*d.x+h[0].y*d.y,p=m,g=1;g<h.length;g+=1){var y=h[g].x*d.x+h[g].y*d.y;y>p?p=y:y<m&&(m=y)}f.min=m,f.max=p},i._findSupports=function(f,h,d,m){var p=h.vertices,g=p.length,y=f.position.x,v=f.position.y,T=d.x*m,C=d.y*m,E=Number.MAX_VALUE,k,_,A,I,S;for(S=0;S<g;S+=1)_=p[S],I=T*(y-_.x)+C*(v-_.y),I<E&&(E=I,k=_);return A=p[(g+k.index-1)%g],E=T*(y-A.x)+C*(v-A.y),_=p[(k.index+1)%g],T*(y-_.x)+C*(v-_.y)<E?(u[0]=k,u[1]=_,u):(u[0]=k,u[1]=A,u)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(16);(function(){i.create=function(o,u){var l=o.bodyA,c=o.bodyB,f={id:i.id(l,c),bodyA:l,bodyB:c,collision:o,contacts:[],activeContacts:[],separation:0,isActive:!0,confirmedActive:!0,isSensor:l.isSensor||c.isSensor,timeCreated:u,timeUpdated:u,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return i.update(f,o,u),f},i.update=function(o,u,l){var c=o.contacts,f=u.supports,h=o.activeContacts,d=u.parentA,m=u.parentB,p=d.vertices.length;o.isActive=!0,o.timeUpdated=l,o.collision=u,o.separation=u.depth,o.inverseMass=d.inverseMass+m.inverseMass,o.friction=d.friction<m.friction?d.friction:m.friction,o.frictionStatic=d.frictionStatic>m.frictionStatic?d.frictionStatic:m.frictionStatic,o.restitution=d.restitution>m.restitution?d.restitution:m.restitution,o.slop=d.slop>m.slop?d.slop:m.slop,u.pair=o,h.length=0;for(var g=0;g<f.length;g++){var y=f[g],v=y.body===d?y.index:p+y.index,T=c[v];T?h.push(T):h.push(c[v]=a.create(y))}},i.setActive=function(o,u,l){u?(o.isActive=!0,o.timeUpdated=l):(o.isActive=!1,o.activeContacts.length=0)},i.id=function(o,u){return o.id<u.id?"A"+o.id+"B"+u.id:"A"+u.id+"B"+o.id}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(2),u=s(7),l=s(1),c=s(11),f=s(0);(function(){i._warming=.4,i._torqueDampen=1,i._minLength=1e-6,i.create=function(h){var d=h;d.bodyA&&!d.pointA&&(d.pointA={x:0,y:0}),d.bodyB&&!d.pointB&&(d.pointB={x:0,y:0});var m=d.bodyA?o.add(d.bodyA.position,d.pointA):d.pointA,p=d.bodyB?o.add(d.bodyB.position,d.pointB):d.pointB,g=o.magnitude(o.sub(m,p));d.length=typeof d.length<"u"?d.length:g,d.id=d.id||f.nextId(),d.label=d.label||"Constraint",d.type="constraint",d.stiffness=d.stiffness||(d.length>0?1:.7),d.damping=d.damping||0,d.angularStiffness=d.angularStiffness||0,d.angleA=d.bodyA?d.bodyA.angle:d.angleA,d.angleB=d.bodyB?d.bodyB.angle:d.angleB,d.plugin={};var y={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return d.length===0&&d.stiffness>.1?(y.type="pin",y.anchors=!1):d.stiffness<.9&&(y.type="spring"),d.render=f.extend(y,d.render),d},i.preSolveAll=function(h){for(var d=0;d<h.length;d+=1){var m=h[d],p=m.constraintImpulse;m.isStatic||p.x===0&&p.y===0&&p.angle===0||(m.position.x+=p.x,m.position.y+=p.y,m.angle+=p.angle)}},i.solveAll=function(h,d){for(var m=f.clamp(d/f._baseDelta,0,1),p=0;p<h.length;p+=1){var g=h[p],y=!g.bodyA||g.bodyA&&g.bodyA.isStatic,v=!g.bodyB||g.bodyB&&g.bodyB.isStatic;(y||v)&&i.solve(h[p],m)}for(p=0;p<h.length;p+=1)g=h[p],y=!g.bodyA||g.bodyA&&g.bodyA.isStatic,v=!g.bodyB||g.bodyB&&g.bodyB.isStatic,!y&&!v&&i.solve(h[p],m)},i.solve=function(h,d){var m=h.bodyA,p=h.bodyB,g=h.pointA,y=h.pointB;if(!(!m&&!p)){m&&!m.isStatic&&(o.rotate(g,m.angle-h.angleA,g),h.angleA=m.angle),p&&!p.isStatic&&(o.rotate(y,p.angle-h.angleB,y),h.angleB=p.angle);var v=g,T=y;if(m&&(v=o.add(m.position,g)),p&&(T=o.add(p.position,y)),!(!v||!T)){var C=o.sub(v,T),E=o.magnitude(C);E<i._minLength&&(E=i._minLength);var k=(E-h.length)/E,_=h.stiffness>=1||h.length===0,A=_?h.stiffness*d:h.stiffness*d*d,I=h.damping*d,S=o.mult(C,k*A),M=(m?m.inverseMass:0)+(p?p.inverseMass:0),N=(m?m.inverseInertia:0)+(p?p.inverseInertia:0),j=M+N,P,L,F,V,B;if(I>0){var q=o.create();F=o.div(C,E),B=o.sub(p&&o.sub(p.position,p.positionPrev)||q,m&&o.sub(m.position,m.positionPrev)||q),V=o.dot(F,B)}m&&!m.isStatic&&(L=m.inverseMass/M,m.constraintImpulse.x-=S.x*L,m.constraintImpulse.y-=S.y*L,m.position.x-=S.x*L,m.position.y-=S.y*L,I>0&&(m.positionPrev.x-=I*F.x*V*L,m.positionPrev.y-=I*F.y*V*L),P=o.cross(g,S)/j*i._torqueDampen*m.inverseInertia*(1-h.angularStiffness),m.constraintImpulse.angle-=P,m.angle-=P),p&&!p.isStatic&&(L=p.inverseMass/M,p.constraintImpulse.x+=S.x*L,p.constraintImpulse.y+=S.y*L,p.position.x+=S.x*L,p.position.y+=S.y*L,I>0&&(p.positionPrev.x+=I*F.x*V*L,p.positionPrev.y+=I*F.y*V*L),P=o.cross(y,S)/j*i._torqueDampen*p.inverseInertia*(1-h.angularStiffness),p.constraintImpulse.angle+=P,p.angle+=P)}}},i.postSolveAll=function(h){for(var d=0;d<h.length;d++){var m=h[d],p=m.constraintImpulse;if(!(m.isStatic||p.x===0&&p.y===0&&p.angle===0)){u.set(m,!1);for(var g=0;g<m.parts.length;g++){var y=m.parts[g];a.translate(y.vertices,p),g>0&&(y.position.x+=p.x,y.position.y+=p.y),p.angle!==0&&(a.rotate(y.vertices,p.angle,m.position),c.rotate(y.axes,p.angle),g>0&&o.rotateAbout(y.position,p.angle,m.position,y.position)),l.update(y.bounds,y.vertices,m.velocity)}p.angle*=i._warming,p.x*=i._warming,p.y*=i._warming}}},i.pointAWorld=function(h){return{x:(h.bodyA?h.bodyA.position.x:0)+(h.pointA?h.pointA.x:0),y:(h.bodyA?h.bodyA.position.y:0)+(h.pointA?h.pointA.y:0)}},i.pointBWorld=function(h){return{x:(h.bodyB?h.bodyB.position.x:0)+(h.pointB?h.pointB.x:0),y:(h.bodyB?h.bodyB.position.y:0)+(h.pointB?h.pointB.y:0)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(0);(function(){i.fromVertices=function(u){for(var l={},c=0;c<u.length;c++){var f=(c+1)%u.length,h=a.normalise({x:u[f].y-u[c].y,y:u[c].x-u[f].x}),d=h.y===0?1/0:h.x/h.y;d=d.toFixed(3).toString(),l[d]=h}return o.values(l)},i.rotate=function(u,l){if(l!==0)for(var c=Math.cos(l),f=Math.sin(l),h=0;h<u.length;h++){var d=u[h],m;m=d.x*c-d.y*f,d.y=d.x*f+d.y*c,d.x=m}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(0),u=s(4),l=s(1),c=s(2);(function(){i.rectangle=function(f,h,d,m,p){p=p||{};var g={label:"Rectangle Body",position:{x:f,y:h},vertices:a.fromPath("L 0 0 L "+d+" 0 L "+d+" "+m+" L 0 "+m)};if(p.chamfer){var y=p.chamfer;g.vertices=a.chamfer(g.vertices,y.radius,y.quality,y.qualityMin,y.qualityMax),delete p.chamfer}return u.create(o.extend({},g,p))},i.trapezoid=function(f,h,d,m,p,g){g=g||{},p*=.5;var y=(1-p*2)*d,v=d*p,T=v+y,C=T+v,E;p<.5?E="L 0 0 L "+v+" "+-m+" L "+T+" "+-m+" L "+C+" 0":E="L 0 0 L "+T+" "+-m+" L "+C+" 0";var k={label:"Trapezoid Body",position:{x:f,y:h},vertices:a.fromPath(E)};if(g.chamfer){var _=g.chamfer;k.vertices=a.chamfer(k.vertices,_.radius,_.quality,_.qualityMin,_.qualityMax),delete g.chamfer}return u.create(o.extend({},k,g))},i.circle=function(f,h,d,m,p){m=m||{};var g={label:"Circle Body",circleRadius:d};p=p||25;var y=Math.ceil(Math.max(10,Math.min(p,d)));return y%2===1&&(y+=1),i.polygon(f,h,y,d,o.extend({},g,m))},i.polygon=function(f,h,d,m,p){if(p=p||{},d<3)return i.circle(f,h,m,p);for(var g=2*Math.PI/d,y="",v=g*.5,T=0;T<d;T+=1){var C=v+T*g,E=Math.cos(C)*m,k=Math.sin(C)*m;y+="L "+E.toFixed(3)+" "+k.toFixed(3)+" "}var _={label:"Polygon Body",position:{x:f,y:h},vertices:a.fromPath(y)};if(p.chamfer){var A=p.chamfer;_.vertices=a.chamfer(_.vertices,A.radius,A.quality,A.qualityMin,A.qualityMax),delete p.chamfer}return u.create(o.extend({},_,p))},i.fromVertices=function(f,h,d,m,p,g,y,v){var T=o.getDecomp(),C,E,k,_,A,I,S,M,N,j,P;for(C=!!(T&&T.quickDecomp),m=m||{},k=[],p=typeof p<"u"?p:!1,g=typeof g<"u"?g:.01,y=typeof y<"u"?y:10,v=typeof v<"u"?v:.01,o.isArray(d[0])||(d=[d]),j=0;j<d.length;j+=1)if(I=d[j],_=a.isConvex(I),A=!_,A&&!C&&o.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."),_||!C)_?I=a.clockwiseSort(I):I=a.hull(I),k.push({position:{x:f,y:h},vertices:I});else{var L=I.map(function(z){return[z.x,z.y]});T.makeCCW(L),g!==!1&&T.removeCollinearPoints(L,g),v!==!1&&T.removeDuplicatePoints&&T.removeDuplicatePoints(L,v);var F=T.quickDecomp(L);for(S=0;S<F.length;S++){var V=F[S],B=V.map(function(z){return{x:z[0],y:z[1]}});y>0&&a.area(B)<y||k.push({position:a.centre(B),vertices:B})}}for(S=0;S<k.length;S++)k[S]=u.create(o.extend(k[S],m));if(p){var q=5;for(S=0;S<k.length;S++){var R=k[S];for(M=S+1;M<k.length;M++){var $=k[M];if(l.overlaps(R.bounds,$.bounds)){var K=R.vertices,D=$.vertices;for(N=0;N<R.vertices.length;N++)for(P=0;P<$.vertices.length;P++){var Z=c.magnitudeSquared(c.sub(K[(N+1)%K.length],D[P])),oe=c.magnitudeSquared(c.sub(K[N],D[(P+1)%D.length]));Z<q&&oe<q&&(K[N].isInternal=!0,D[P].isInternal=!0)}}}}}return k.length>1?(E=u.create(o.extend({parts:k.slice(0)},m)),u.setPosition(E,{x:f,y:h}),E):k[0]}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0),o=s(8);(function(){i.create=function(u){var l={bodies:[],pairs:null};return a.extend(l,u)},i.setBodies=function(u,l){u.bodies=l.slice(0)},i.clear=function(u){u.bodies=[]},i.collisions=function(u){var l=[],c=u.pairs,f=u.bodies,h=f.length,d=i.canCollide,m=o.collides,p,g;for(f.sort(i._compareBoundsX),p=0;p<h;p++){var y=f[p],v=y.bounds,T=y.bounds.max.x,C=y.bounds.max.y,E=y.bounds.min.y,k=y.isStatic||y.isSleeping,_=y.parts.length,A=_===1;for(g=p+1;g<h;g++){var I=f[g],S=I.bounds;if(S.min.x>T)break;if(!(C<S.min.y||E>S.max.y)&&!(k&&(I.isStatic||I.isSleeping))&&d(y.collisionFilter,I.collisionFilter)){var M=I.parts.length;if(A&&M===1){var N=m(y,I,c);N&&l.push(N)}else for(var j=_>1?1:0,P=M>1?1:0,L=j;L<_;L++)for(var F=y.parts[L],v=F.bounds,V=P;V<M;V++){var B=I.parts[V],S=B.bounds;if(!(v.min.x>S.max.x||v.max.x<S.min.x||v.max.y<S.min.y||v.min.y>S.max.y)){var N=m(F,B,c);N&&l.push(N)}}}}}return l},i.canCollide=function(u,l){return u.group===l.group&&u.group!==0?u.group>0:(u.mask&l.category)!==0&&(l.mask&u.category)!==0},i._compareBoundsX=function(u,l){return u.bounds.min.x-l.bounds.min.x}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i.create=function(o){var u={};return o||a.log("Mouse.create: element was undefined, defaulting to document.body","warn"),u.element=o||document.body,u.absolute={x:0,y:0},u.position={x:0,y:0},u.mousedownPosition={x:0,y:0},u.mouseupPosition={x:0,y:0},u.offset={x:0,y:0},u.scale={x:1,y:1},u.wheelDelta=0,u.button=-1,u.pixelRatio=parseInt(u.element.getAttribute("data-pixel-ratio"),10)||1,u.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},u.mousemove=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f&&(u.button=0,l.preventDefault()),u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.sourceEvents.mousemove=l},u.mousedown=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f?(u.button=0,l.preventDefault()):u.button=l.button,u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.mousedownPosition.x=u.position.x,u.mousedownPosition.y=u.position.y,u.sourceEvents.mousedown=l},u.mouseup=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f&&l.preventDefault(),u.button=-1,u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.mouseupPosition.x=u.position.x,u.mouseupPosition.y=u.position.y,u.sourceEvents.mouseup=l},u.mousewheel=function(l){u.wheelDelta=Math.max(-1,Math.min(1,l.wheelDelta||-l.detail)),l.preventDefault()},i.setElement(u,u.element),u},i.setElement=function(o,u){o.element=u,u.addEventListener("mousemove",o.mousemove),u.addEventListener("mousedown",o.mousedown),u.addEventListener("mouseup",o.mouseup),u.addEventListener("mousewheel",o.mousewheel),u.addEventListener("DOMMouseScroll",o.mousewheel),u.addEventListener("touchmove",o.mousemove),u.addEventListener("touchstart",o.mousedown),u.addEventListener("touchend",o.mouseup)},i.clearSourceEvents=function(o){o.sourceEvents.mousemove=null,o.sourceEvents.mousedown=null,o.sourceEvents.mouseup=null,o.sourceEvents.mousewheel=null,o.wheelDelta=0},i.setOffset=function(o,u){o.offset.x=u.x,o.offset.y=u.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},i.setScale=function(o,u){o.scale.x=u.x,o.scale.y=u.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},i._getRelativeMousePosition=function(o,u,l){var c=u.getBoundingClientRect(),f=document.documentElement||document.body.parentNode||document.body,h=window.pageXOffset!==void 0?window.pageXOffset:f.scrollLeft,d=window.pageYOffset!==void 0?window.pageYOffset:f.scrollTop,m=o.changedTouches,p,g;return m?(p=m[0].pageX-c.left-h,g=m[0].pageY-c.top-d):(p=o.pageX-c.left-h,g=o.pageY-c.top-d),{x:p/(u.clientWidth/(u.width||u.clientWidth)*l),y:g/(u.clientHeight/(u.height||u.clientHeight)*l)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i._registry={},i.register=function(o){if(i.isPlugin(o)||a.warn("Plugin.register:",i.toString(o),"does not implement all required fields."),o.name in i._registry){var u=i._registry[o.name],l=i.versionParse(o.version).number,c=i.versionParse(u.version).number;l>c?(a.warn("Plugin.register:",i.toString(u),"was upgraded to",i.toString(o)),i._registry[o.name]=o):l<c?a.warn("Plugin.register:",i.toString(u),"can not be downgraded to",i.toString(o)):o!==u&&a.warn("Plugin.register:",i.toString(o),"is already registered to different plugin object")}else i._registry[o.name]=o;return o},i.resolve=function(o){return i._registry[i.dependencyParse(o).name]},i.toString=function(o){return typeof o=="string"?o:(o.name||"anonymous")+"@"+(o.version||o.range||"0.0.0")},i.isPlugin=function(o){return o&&o.name&&o.version&&o.install},i.isUsed=function(o,u){return o.used.indexOf(u)>-1},i.isFor=function(o,u){var l=o.for&&i.dependencyParse(o.for);return!o.for||u.name===l.name&&i.versionSatisfies(u.version,l.range)},i.use=function(o,u){if(o.uses=(o.uses||[]).concat(u||[]),o.uses.length===0){a.warn("Plugin.use:",i.toString(o),"does not specify any dependencies to install.");return}for(var l=i.dependencies(o),c=a.topologicalSort(l),f=[],h=0;h<c.length;h+=1)if(c[h]!==o.name){var d=i.resolve(c[h]);if(!d){f.push("❌ "+c[h]);continue}i.isUsed(o,d.name)||(i.isFor(d,o)||(a.warn("Plugin.use:",i.toString(d),"is for",d.for,"but installed on",i.toString(o)+"."),d._warned=!0),d.install?d.install(o):(a.warn("Plugin.use:",i.toString(d),"does not specify an install function."),d._warned=!0),d._warned?(f.push("🔶 "+i.toString(d)),delete d._warned):f.push("✅ "+i.toString(d)),o.used.push(d.name))}f.length>0&&a.info(f.join(" "))},i.dependencies=function(o,u){var l=i.dependencyParse(o),c=l.name;if(u=u||{},!(c in u)){o=i.resolve(o)||o,u[c]=a.map(o.uses||[],function(h){i.isPlugin(h)&&i.register(h);var d=i.dependencyParse(h),m=i.resolve(h);return m&&!i.versionSatisfies(m.version,d.range)?(a.warn("Plugin.dependencies:",i.toString(m),"does not satisfy",i.toString(d),"used by",i.toString(l)+"."),m._warned=!0,o._warned=!0):m||(a.warn("Plugin.dependencies:",i.toString(h),"used by",i.toString(l),"could not be resolved."),o._warned=!0),d.name});for(var f=0;f<u[c].length;f+=1)i.dependencies(u[c][f],u);return u}},i.dependencyParse=function(o){if(a.isString(o)){var u=/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/;return u.test(o)||a.warn("Plugin.dependencyParse:",o,"is not a valid dependency string."),{name:o.split("@")[0],range:o.split("@")[1]||"*"}}return{name:o.name,range:o.range||o.version}},i.versionParse=function(o){var u=/^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;u.test(o)||a.warn("Plugin.versionParse:",o,"is not a valid version or range.");var l=u.exec(o),c=Number(l[4]),f=Number(l[5]),h=Number(l[6]);return{isRange:!!(l[1]||l[2]),version:l[3],range:o,operator:l[1]||l[2]||"",major:c,minor:f,patch:h,parts:[c,f,h],prerelease:l[7],number:c*1e8+f*1e4+h}},i.versionSatisfies=function(o,u){u=u||"*";var l=i.versionParse(u),c=i.versionParse(o);if(l.isRange){if(l.operator==="*"||o==="*")return!0;if(l.operator===">")return c.number>l.number;if(l.operator===">=")return c.number>=l.number;if(l.operator==="~")return c.major===l.major&&c.minor===l.minor&&c.patch>=l.patch;if(l.operator==="^")return l.major>0?c.major===l.major&&c.number>=l.number:l.minor>0?c.minor===l.minor&&c.patch>=l.patch:c.patch===l.patch}return o===u||o==="*"}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i){return{vertex:i,normalImpulse:0,tangentImpulse:0}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(7),o=s(18),u=s(13),l=s(19),c=s(5),f=s(6),h=s(10),d=s(0),m=s(4);(function(){i.create=function(p){p=p||{};var g={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},y=d.extend(g,p);return y.world=p.world||f.create({label:"World"}),y.pairs=p.pairs||l.create(),y.detector=p.detector||u.create(),y.grid={buckets:[]},y.world.gravity=y.gravity,y.broadphase=y.grid,y.metrics={},y},i.update=function(p,g){var y=d.now(),v=p.world,T=p.detector,C=p.pairs,E=p.timing,k=E.timestamp,_;g=typeof g<"u"?g:d._baseDelta,g*=E.timeScale,E.timestamp+=g,E.lastDelta=g;var A={timestamp:E.timestamp,delta:g};c.trigger(p,"beforeUpdate",A);var I=f.allBodies(v),S=f.allConstraints(v);for(v.isModified&&(u.setBodies(T,I),f.setModified(v,!1,!1,!0)),p.enableSleeping&&a.update(I,g),i._bodiesApplyGravity(I,p.gravity),g>0&&i._bodiesUpdate(I,g),h.preSolveAll(I),_=0;_<p.constraintIterations;_++)h.solveAll(S,g);h.postSolveAll(I),T.pairs=p.pairs;var M=u.collisions(T);l.update(C,M,k),p.enableSleeping&&a.afterCollisions(C.list),C.collisionStart.length>0&&c.trigger(p,"collisionStart",{pairs:C.collisionStart});var N=d.clamp(20/p.positionIterations,0,1);for(o.preSolvePosition(C.list),_=0;_<p.positionIterations;_++)o.solvePosition(C.list,g,N);for(o.postSolvePosition(I),h.preSolveAll(I),_=0;_<p.constraintIterations;_++)h.solveAll(S,g);for(h.postSolveAll(I),o.preSolveVelocity(C.list),_=0;_<p.velocityIterations;_++)o.solveVelocity(C.list,g);return i._bodiesUpdateVelocities(I),C.collisionActive.length>0&&c.trigger(p,"collisionActive",{pairs:C.collisionActive}),C.collisionEnd.length>0&&c.trigger(p,"collisionEnd",{pairs:C.collisionEnd}),i._bodiesClearForces(I),c.trigger(p,"afterUpdate",A),p.timing.lastElapsed=d.now()-y,p},i.merge=function(p,g){if(d.extend(p,g),g.world){p.world=g.world,i.clear(p);for(var y=f.allBodies(p.world),v=0;v<y.length;v++){var T=y[v];a.set(T,!1),T.id=d.nextId()}}},i.clear=function(p){l.clear(p.pairs),u.clear(p.detector)},i._bodiesClearForces=function(p){for(var g=p.length,y=0;y<g;y++){var v=p[y];v.force.x=0,v.force.y=0,v.torque=0}},i._bodiesApplyGravity=function(p,g){var y=typeof g.scale<"u"?g.scale:.001,v=p.length;if(!(g.x===0&&g.y===0||y===0))for(var T=0;T<v;T++){var C=p[T];C.isStatic||C.isSleeping||(C.force.y+=C.mass*g.y*y,C.force.x+=C.mass*g.x*y)}},i._bodiesUpdate=function(p,g){for(var y=p.length,v=0;v<y;v++){var T=p[v];T.isStatic||T.isSleeping||m.update(T,g)}},i._bodiesUpdateVelocities=function(p){for(var g=p.length,y=0;y<g;y++)m.updateVelocities(p[y])}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(0),u=s(1);(function(){i._restingThresh=2,i._restingThreshTangent=Math.sqrt(6),i._positionDampen=.9,i._positionWarming=.8,i._frictionNormalMultiplier=5,i._frictionMaxStatic=Number.MAX_VALUE,i.preSolvePosition=function(l){var c,f,h,d=l.length;for(c=0;c<d;c++)f=l[c],f.isActive&&(h=f.activeContacts.length,f.collision.parentA.totalContacts+=h,f.collision.parentB.totalContacts+=h)},i.solvePosition=function(l,c,f){var h,d,m,p,g,y,v,T,C=i._positionDampen*(f||1),E=o.clamp(c/o._baseDelta,0,1),k=l.length;for(h=0;h<k;h++)d=l[h],!(!d.isActive||d.isSensor)&&(m=d.collision,p=m.parentA,g=m.parentB,y=m.normal,d.separation=y.x*(g.positionImpulse.x+m.penetration.x-p.positionImpulse.x)+y.y*(g.positionImpulse.y+m.penetration.y-p.positionImpulse.y));for(h=0;h<k;h++)d=l[h],!(!d.isActive||d.isSensor)&&(m=d.collision,p=m.parentA,g=m.parentB,y=m.normal,T=d.separation-d.slop*E,(p.isStatic||g.isStatic)&&(T*=2),p.isStatic||p.isSleeping||(v=C/p.totalContacts,p.positionImpulse.x+=y.x*T*v,p.positionImpulse.y+=y.y*T*v),g.isStatic||g.isSleeping||(v=C/g.totalContacts,g.positionImpulse.x-=y.x*T*v,g.positionImpulse.y-=y.y*T*v))},i.postSolvePosition=function(l){for(var c=i._positionWarming,f=l.length,h=a.translate,d=u.update,m=0;m<f;m++){var p=l[m],g=p.positionImpulse,y=g.x,v=g.y,T=p.velocity;if(p.totalContacts=0,y!==0||v!==0){for(var C=0;C<p.parts.length;C++){var E=p.parts[C];h(E.vertices,g),d(E.bounds,E.vertices,T),E.position.x+=y,E.position.y+=v}p.positionPrev.x+=y,p.positionPrev.y+=v,y*T.x+v*T.y<0?(g.x=0,g.y=0):(g.x*=c,g.y*=c)}}},i.preSolveVelocity=function(l){var c=l.length,f,h;for(f=0;f<c;f++){var d=l[f];if(!(!d.isActive||d.isSensor)){var m=d.activeContacts,p=m.length,g=d.collision,y=g.parentA,v=g.parentB,T=g.normal,C=g.tangent;for(h=0;h<p;h++){var E=m[h],k=E.vertex,_=E.normalImpulse,A=E.tangentImpulse;if(_!==0||A!==0){var I=T.x*_+C.x*A,S=T.y*_+C.y*A;y.isStatic||y.isSleeping||(y.positionPrev.x+=I*y.inverseMass,y.positionPrev.y+=S*y.inverseMass,y.anglePrev+=y.inverseInertia*((k.x-y.position.x)*S-(k.y-y.position.y)*I)),v.isStatic||v.isSleeping||(v.positionPrev.x-=I*v.inverseMass,v.positionPrev.y-=S*v.inverseMass,v.anglePrev-=v.inverseInertia*((k.x-v.position.x)*S-(k.y-v.position.y)*I))}}}}},i.solveVelocity=function(l,c){var f=c/o._baseDelta,h=f*f,d=h*f,m=-i._restingThresh*f,p=i._restingThreshTangent,g=i._frictionNormalMultiplier*f,y=i._frictionMaxStatic,v=l.length,T,C,E,k;for(E=0;E<v;E++){var _=l[E];if(!(!_.isActive||_.isSensor)){var A=_.collision,I=A.parentA,S=A.parentB,M=I.velocity,N=S.velocity,j=A.normal.x,P=A.normal.y,L=A.tangent.x,F=A.tangent.y,V=_.activeContacts,B=V.length,q=1/B,R=I.inverseMass+S.inverseMass,$=_.friction*_.frictionStatic*g;for(M.x=I.position.x-I.positionPrev.x,M.y=I.position.y-I.positionPrev.y,N.x=S.position.x-S.positionPrev.x,N.y=S.position.y-S.positionPrev.y,I.angularVelocity=I.angle-I.anglePrev,S.angularVelocity=S.angle-S.anglePrev,k=0;k<B;k++){var K=V[k],D=K.vertex,Z=D.x-I.position.x,oe=D.y-I.position.y,z=D.x-S.position.x,J=D.y-S.position.y,X=M.x-oe*I.angularVelocity,ce=M.y+Z*I.angularVelocity,he=N.x-J*S.angularVelocity,re=N.y+z*S.angularVelocity,ne=X-he,xe=ce-re,ve=j*ne+P*xe,Le=L*ne+F*xe,Be=_.separation+ve,Ee=Math.min(Be,1);Ee=Be<0?0:Ee;var Oe=Ee*$;Le<-Oe||Le>Oe?(C=Le>0?Le:-Le,T=_.friction*(Le>0?1:-1)*d,T<-C?T=-C:T>C&&(T=C)):(T=Le,C=y);var te=Z*P-oe*j,Ie=z*P-J*j,be=q/(R+I.inverseInertia*te*te+S.inverseInertia*Ie*Ie),ze=(1+_.restitution)*ve*be;if(T*=be,ve<m)K.normalImpulse=0;else{var rt=K.normalImpulse;K.normalImpulse+=ze,K.normalImpulse>0&&(K.normalImpulse=0),ze=K.normalImpulse-rt}if(Le<-p||Le>p)K.tangentImpulse=0;else{var Me=K.tangentImpulse;K.tangentImpulse+=T,K.tangentImpulse<-C&&(K.tangentImpulse=-C),K.tangentImpulse>C&&(K.tangentImpulse=C),T=K.tangentImpulse-Me}var Xe=j*ze+L*T,G=P*ze+F*T;I.isStatic||I.isSleeping||(I.positionPrev.x+=Xe*I.inverseMass,I.positionPrev.y+=G*I.inverseMass,I.anglePrev+=(Z*G-oe*Xe)*I.inverseInertia),S.isStatic||S.isSleeping||(S.positionPrev.x-=Xe*S.inverseMass,S.positionPrev.y-=G*S.inverseMass,S.anglePrev-=(z*G-J*Xe)*S.inverseInertia)}}}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(9),o=s(0);(function(){i.create=function(u){return o.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},u)},i.update=function(u,l,c){var f=u.list,h=f.length,d=u.table,m=l.length,p=u.collisionStart,g=u.collisionEnd,y=u.collisionActive,v,T,C,E;for(p.length=0,g.length=0,y.length=0,E=0;E<h;E++)f[E].confirmedActive=!1;for(E=0;E<m;E++)v=l[E],C=v.pair,C?(C.isActive?y.push(C):p.push(C),a.update(C,v,c),C.confirmedActive=!0):(C=a.create(v,c),d[C.id]=C,p.push(C),f.push(C));var k=[];for(h=f.length,E=0;E<h;E++)C=f[E],C.confirmedActive||(a.setActive(C,!1,c),g.push(C),!C.collision.bodyA.isSleeping&&!C.collision.bodyB.isSleeping&&k.push(E));for(E=0;E<k.length;E++)T=k[E]-E,C=f[T],f.splice(T,1),delete d[C.id]},i.clear=function(u){return u.table={},u.list.length=0,u.collisionStart.length=0,u.collisionActive.length=0,u.collisionEnd.length=0,u}})()}),(function(n,r,s){var i=n.exports=s(21);i.Axes=s(11),i.Bodies=s(12),i.Body=s(4),i.Bounds=s(1),i.Collision=s(8),i.Common=s(0),i.Composite=s(6),i.Composites=s(22),i.Constraint=s(10),i.Contact=s(16),i.Detector=s(13),i.Engine=s(17),i.Events=s(5),i.Grid=s(23),i.Mouse=s(14),i.MouseConstraint=s(24),i.Pair=s(9),i.Pairs=s(19),i.Plugin=s(15),i.Query=s(25),i.Render=s(26),i.Resolver=s(18),i.Runner=s(27),i.SAT=s(28),i.Sleeping=s(7),i.Svg=s(29),i.Vector=s(2),i.Vertices=s(3),i.World=s(30),i.Engine.run=i.Runner.run,i.Common.deprecated(i.Engine,"run","Engine.run ➤ use Matter.Runner.run(engine) instead")}),(function(n,r,s){var i={};n.exports=i;var a=s(15),o=s(0);(function(){i.name="matter-js",i.version="0.19.0",i.uses=[],i.used=[],i.use=function(){a.use(i,Array.prototype.slice.call(arguments))},i.before=function(u,l){return u=u.replace(/^Matter./,""),o.chainPathBefore(i,u,l)},i.after=function(u,l){return u=u.replace(/^Matter./,""),o.chainPathAfter(i,u,l)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(6),o=s(10),u=s(0),l=s(4),c=s(12),f=u.deprecated;(function(){i.stack=function(h,d,m,p,g,y,v){for(var T=a.create({label:"Stack"}),C=h,E=d,k,_=0,A=0;A<p;A++){for(var I=0,S=0;S<m;S++){var M=v(C,E,S,A,k,_);if(M){var N=M.bounds.max.y-M.bounds.min.y,j=M.bounds.max.x-M.bounds.min.x;N>I&&(I=N),l.translate(M,{x:j*.5,y:N*.5}),C=M.bounds.max.x+g,a.addBody(T,M),k=M,_+=1}else C+=g}E+=I+y,C=h}return T},i.chain=function(h,d,m,p,g,y){for(var v=h.bodies,T=1;T<v.length;T++){var C=v[T-1],E=v[T],k=C.bounds.max.y-C.bounds.min.y,_=C.bounds.max.x-C.bounds.min.x,A=E.bounds.max.y-E.bounds.min.y,I=E.bounds.max.x-E.bounds.min.x,S={bodyA:C,pointA:{x:_*d,y:k*m},bodyB:E,pointB:{x:I*p,y:A*g}},M=u.extend(S,y);a.addConstraint(h,o.create(M))}return h.label+=" Chain",h},i.mesh=function(h,d,m,p,g){var y=h.bodies,v,T,C,E,k;for(v=0;v<m;v++){for(T=1;T<d;T++)C=y[T-1+v*d],E=y[T+v*d],a.addConstraint(h,o.create(u.extend({bodyA:C,bodyB:E},g)));if(v>0)for(T=0;T<d;T++)C=y[T+(v-1)*d],E=y[T+v*d],a.addConstraint(h,o.create(u.extend({bodyA:C,bodyB:E},g))),p&&T>0&&(k=y[T-1+(v-1)*d],a.addConstraint(h,o.create(u.extend({bodyA:k,bodyB:E},g)))),p&&T<d-1&&(k=y[T+1+(v-1)*d],a.addConstraint(h,o.create(u.extend({bodyA:k,bodyB:E},g))))}return h.label+=" Mesh",h},i.pyramid=function(h,d,m,p,g,y,v){return i.stack(h,d,m,p,g,y,function(T,C,E,k,_,A){var I=Math.min(p,Math.ceil(m/2)),S=_?_.bounds.max.x-_.bounds.min.x:0;if(!(k>I)){k=I-k;var M=k,N=m-1-k;if(!(E<M||E>N)){A===1&&l.translate(_,{x:(E+(m%2===1?1:-1))*S,y:0});var j=_?E*S:0;return v(h+j+E*g,C,E,k,_,A)}}})},i.newtonsCradle=function(h,d,m,p,g){for(var y=a.create({label:"Newtons Cradle"}),v=0;v<m;v++){var T=1.9,C=c.circle(h+v*(p*T),d+g,p,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),E=o.create({pointA:{x:h+v*(p*T),y:d},bodyB:C});a.addBody(y,C),a.addConstraint(y,E)}return y},f(i,"newtonsCradle","Composites.newtonsCradle ➤ moved to newtonsCradle example"),i.car=function(h,d,m,p,g){var y=l.nextGroup(!0),v=20,T=-m*.5+v,C=m*.5-v,E=0,k=a.create({label:"Car"}),_=c.rectangle(h,d,m,p,{collisionFilter:{group:y},chamfer:{radius:p*.5},density:2e-4}),A=c.circle(h+T,d+E,g,{collisionFilter:{group:y},friction:.8}),I=c.circle(h+C,d+E,g,{collisionFilter:{group:y},friction:.8}),S=o.create({bodyB:_,pointB:{x:T,y:E},bodyA:A,stiffness:1,length:0}),M=o.create({bodyB:_,pointB:{x:C,y:E},bodyA:I,stiffness:1,length:0});return a.addBody(k,_),a.addBody(k,A),a.addBody(k,I),a.addConstraint(k,S),a.addConstraint(k,M),k},f(i,"car","Composites.car ➤ moved to car example"),i.softBody=function(h,d,m,p,g,y,v,T,C,E){C=u.extend({inertia:1/0},C),E=u.extend({stiffness:.2,render:{type:"line",anchors:!1}},E);var k=i.stack(h,d,m,p,g,y,function(_,A){return c.circle(_,A,T,C)});return i.mesh(k,m,p,v,E),k.label="Soft Body",k},f(i,"softBody","Composites.softBody ➤ moved to softBody and cloth examples")})()}),(function(n,r,s){var i={};n.exports=i;var a=s(9),o=s(0),u=o.deprecated;(function(){i.create=function(l){var c={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return o.extend(c,l)},i.update=function(l,c,f,h){var d,m,p,g=f.world,y=l.buckets,v,T,C=!1;for(d=0;d<c.length;d++){var E=c[d];if(!(E.isSleeping&&!h)&&!(g.bounds&&(E.bounds.max.x<g.bounds.min.x||E.bounds.min.x>g.bounds.max.x||E.bounds.max.y<g.bounds.min.y||E.bounds.min.y>g.bounds.max.y))){var k=i._getRegion(l,E);if(!E.region||k.id!==E.region.id||h){(!E.region||h)&&(E.region=k);var _=i._regionUnion(k,E.region);for(m=_.startCol;m<=_.endCol;m++)for(p=_.startRow;p<=_.endRow;p++){T=i._getBucketId(m,p),v=y[T];var A=m>=k.startCol&&m<=k.endCol&&p>=k.startRow&&p<=k.endRow,I=m>=E.region.startCol&&m<=E.region.endCol&&p>=E.region.startRow&&p<=E.region.endRow;!A&&I&&I&&v&&i._bucketRemoveBody(l,v,E),(E.region===k||A&&!I||h)&&(v||(v=i._createBucket(y,T)),i._bucketAddBody(l,v,E))}E.region=k,C=!0}}}C&&(l.pairsList=i._createActivePairsList(l))},u(i,"update","Grid.update ➤ replaced by Matter.Detector"),i.clear=function(l){l.buckets={},l.pairs={},l.pairsList=[]},u(i,"clear","Grid.clear ➤ replaced by Matter.Detector"),i._regionUnion=function(l,c){var f=Math.min(l.startCol,c.startCol),h=Math.max(l.endCol,c.endCol),d=Math.min(l.startRow,c.startRow),m=Math.max(l.endRow,c.endRow);return i._createRegion(f,h,d,m)},i._getRegion=function(l,c){var f=c.bounds,h=Math.floor(f.min.x/l.bucketWidth),d=Math.floor(f.max.x/l.bucketWidth),m=Math.floor(f.min.y/l.bucketHeight),p=Math.floor(f.max.y/l.bucketHeight);return i._createRegion(h,d,m,p)},i._createRegion=function(l,c,f,h){return{id:l+","+c+","+f+","+h,startCol:l,endCol:c,startRow:f,endRow:h}},i._getBucketId=function(l,c){return"C"+l+"R"+c},i._createBucket=function(l,c){var f=l[c]=[];return f},i._bucketAddBody=function(l,c,f){var h=l.pairs,d=a.id,m=c.length,p;for(p=0;p<m;p++){var g=c[p];if(!(f.id===g.id||f.isStatic&&g.isStatic)){var y=d(f,g),v=h[y];v?v[2]+=1:h[y]=[f,g,1]}}c.push(f)},i._bucketRemoveBody=function(l,c,f){var h=l.pairs,d=a.id,m;c.splice(o.indexOf(c,f),1);var p=c.length;for(m=0;m<p;m++){var g=h[d(f,c[m])];g&&(g[2]-=1)}},i._createActivePairsList=function(l){var c,f=l.pairs,h=o.keys(f),d=h.length,m=[],p;for(p=0;p<d;p++)c=f[h[p]],c[2]>0?m.push(c):delete f[h[p]];return m}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(7),u=s(14),l=s(5),c=s(13),f=s(10),h=s(6),d=s(0),m=s(1);(function(){i.create=function(p,g){var y=(p?p.mouse:null)||(g?g.mouse:null);y||(p&&p.render&&p.render.canvas?y=u.create(p.render.canvas):g&&g.element?y=u.create(g.element):(y=u.create(),d.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var v=f.create({label:"Mouse Constraint",pointA:y.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),T={type:"mouseConstraint",mouse:y,element:null,body:null,constraint:v,collisionFilter:{category:1,mask:4294967295,group:0}},C=d.extend(T,g);return l.on(p,"beforeUpdate",function(){var E=h.allBodies(p.world);i.update(C,E),i._triggerEvents(C)}),C},i.update=function(p,g){var y=p.mouse,v=p.constraint,T=p.body;if(y.button===0){if(v.bodyB)o.set(v.bodyB,!1),v.pointA=y.position;else for(var C=0;C<g.length;C++)if(T=g[C],m.contains(T.bounds,y.position)&&c.canCollide(T.collisionFilter,p.collisionFilter))for(var E=T.parts.length>1?1:0;E<T.parts.length;E++){var k=T.parts[E];if(a.contains(k.vertices,y.position)){v.pointA=y.position,v.bodyB=p.body=T,v.pointB={x:y.position.x-T.position.x,y:y.position.y-T.position.y},v.angleB=T.angle,o.set(T,!1),l.trigger(p,"startdrag",{mouse:y,body:T});break}}}else v.bodyB=p.body=null,v.pointB=null,T&&l.trigger(p,"enddrag",{mouse:y,body:T})},i._triggerEvents=function(p){var g=p.mouse,y=g.sourceEvents;y.mousemove&&l.trigger(p,"mousemove",{mouse:g}),y.mousedown&&l.trigger(p,"mousedown",{mouse:g}),y.mouseup&&l.trigger(p,"mouseup",{mouse:g}),u.clearSourceEvents(g)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(8),u=s(1),l=s(12),c=s(3);(function(){i.collides=function(f,h){for(var d=[],m=h.length,p=f.bounds,g=o.collides,y=u.overlaps,v=0;v<m;v++){var T=h[v],C=T.parts.length,E=C===1?0:1;if(y(T.bounds,p))for(var k=E;k<C;k++){var _=T.parts[k];if(y(_.bounds,p)){var A=g(_,f);if(A){d.push(A);break}}}}return d},i.ray=function(f,h,d,m){m=m||1e-100;for(var p=a.angle(h,d),g=a.magnitude(a.sub(h,d)),y=(d.x+h.x)*.5,v=(d.y+h.y)*.5,T=l.rectangle(y,v,g,m,{angle:p}),C=i.collides(T,f),E=0;E<C.length;E+=1){var k=C[E];k.body=k.bodyB=k.bodyA}return C},i.region=function(f,h,d){for(var m=[],p=0;p<f.length;p++){var g=f[p],y=u.overlaps(g.bounds,h);(y&&!d||!y&&d)&&m.push(g)}return m},i.point=function(f,h){for(var d=[],m=0;m<f.length;m++){var p=f[m];if(u.contains(p.bounds,h))for(var g=p.parts.length===1?0:1;g<p.parts.length;g++){var y=p.parts[g];if(u.contains(y.bounds,h)&&c.contains(y.vertices,h)){d.push(p);break}}}return d}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(4),o=s(0),u=s(6),l=s(1),c=s(5),f=s(2),h=s(14);(function(){var d,m;typeof window<"u"&&(d=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(E){window.setTimeout(function(){E(o.now())},1e3/60)},m=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),i._goodFps=30,i._goodDelta=1e3/60,i.create=function(E){var k={engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:"#14151f",wireframeBackground:"#14151f",hasBounds:!!E.bounds,enabled:!0,wireframes:!0,showSleeping:!0,showDebug:!1,showStats:!1,showPerformance:!1,showBounds:!1,showVelocity:!1,showCollisions:!1,showSeparations:!1,showAxes:!1,showPositions:!1,showAngleIndicator:!1,showIds:!1,showVertexNumbers:!1,showConvexHulls:!1,showInternalEdges:!1,showMousePosition:!1}},_=o.extend(k,E);return _.canvas&&(_.canvas.width=_.options.width||_.canvas.width,_.canvas.height=_.options.height||_.canvas.height),_.mouse=E.mouse,_.engine=E.engine,_.canvas=_.canvas||y(_.options.width,_.options.height),_.context=_.canvas.getContext("2d"),_.textures={},_.bounds=_.bounds||{min:{x:0,y:0},max:{x:_.canvas.width,y:_.canvas.height}},_.controller=i,_.options.showBroadphase=!1,_.options.pixelRatio!==1&&i.setPixelRatio(_,_.options.pixelRatio),o.isElement(_.element)&&_.element.appendChild(_.canvas),_},i.run=function(E){(function k(_){E.frameRequestId=d(k),p(E,_),i.world(E,_),(E.options.showStats||E.options.showDebug)&&i.stats(E,E.context,_),(E.options.showPerformance||E.options.showDebug)&&i.performance(E,E.context,_)})()},i.stop=function(E){m(E.frameRequestId)},i.setPixelRatio=function(E,k){var _=E.options,A=E.canvas;k==="auto"&&(k=v(A)),_.pixelRatio=k,A.setAttribute("data-pixel-ratio",k),A.width=_.width*k,A.height=_.height*k,A.style.width=_.width+"px",A.style.height=_.height+"px"},i.lookAt=function(E,k,_,A){A=typeof A<"u"?A:!0,k=o.isArray(k)?k:[k],_=_||{x:0,y:0};for(var I={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0}},S=0;S<k.length;S+=1){var M=k[S],N=M.bounds?M.bounds.min:M.min||M.position||M,j=M.bounds?M.bounds.max:M.max||M.position||M;N&&j&&(N.x<I.min.x&&(I.min.x=N.x),j.x>I.max.x&&(I.max.x=j.x),N.y<I.min.y&&(I.min.y=N.y),j.y>I.max.y&&(I.max.y=j.y))}var P=I.max.x-I.min.x+2*_.x,L=I.max.y-I.min.y+2*_.y,F=E.canvas.height,V=E.canvas.width,B=V/F,q=P/L,R=1,$=1;q>B?$=q/B:R=B/q,E.options.hasBounds=!0,E.bounds.min.x=I.min.x,E.bounds.max.x=I.min.x+P*R,E.bounds.min.y=I.min.y,E.bounds.max.y=I.min.y+L*$,A&&(E.bounds.min.x+=P*.5-P*R*.5,E.bounds.max.x+=P*.5-P*R*.5,E.bounds.min.y+=L*.5-L*$*.5,E.bounds.max.y+=L*.5-L*$*.5),E.bounds.min.x-=_.x,E.bounds.max.x-=_.x,E.bounds.min.y-=_.y,E.bounds.max.y-=_.y,E.mouse&&(h.setScale(E.mouse,{x:(E.bounds.max.x-E.bounds.min.x)/E.canvas.width,y:(E.bounds.max.y-E.bounds.min.y)/E.canvas.height}),h.setOffset(E.mouse,E.bounds.min))},i.startViewTransform=function(E){var k=E.bounds.max.x-E.bounds.min.x,_=E.bounds.max.y-E.bounds.min.y,A=k/E.options.width,I=_/E.options.height;E.context.setTransform(E.options.pixelRatio/A,0,0,E.options.pixelRatio/I,0,0),E.context.translate(-E.bounds.min.x,-E.bounds.min.y)},i.endViewTransform=function(E){E.context.setTransform(E.options.pixelRatio,0,0,E.options.pixelRatio,0,0)},i.world=function(E,k){var _=o.now(),A=E.engine,I=A.world,S=E.canvas,M=E.context,N=E.options,j=E.timing,P=u.allBodies(I),L=u.allConstraints(I),F=N.wireframes?N.wireframeBackground:N.background,V=[],B=[],q,R={timestamp:A.timing.timestamp};if(c.trigger(E,"beforeRender",R),E.currentBackground!==F&&C(E,F),M.globalCompositeOperation="source-in",M.fillStyle="transparent",M.fillRect(0,0,S.width,S.height),M.globalCompositeOperation="source-over",N.hasBounds){for(q=0;q<P.length;q++){var $=P[q];l.overlaps($.bounds,E.bounds)&&V.push($)}for(q=0;q<L.length;q++){var K=L[q],D=K.bodyA,Z=K.bodyB,oe=K.pointA,z=K.pointB;D&&(oe=f.add(D.position,K.pointA)),Z&&(z=f.add(Z.position,K.pointB)),!(!oe||!z)&&(l.contains(E.bounds,oe)||l.contains(E.bounds,z))&&B.push(K)}i.startViewTransform(E),E.mouse&&(h.setScale(E.mouse,{x:(E.bounds.max.x-E.bounds.min.x)/E.options.width,y:(E.bounds.max.y-E.bounds.min.y)/E.options.height}),h.setOffset(E.mouse,E.bounds.min))}else B=L,V=P,E.options.pixelRatio!==1&&E.context.setTransform(E.options.pixelRatio,0,0,E.options.pixelRatio,0,0);!N.wireframes||A.enableSleeping&&N.showSleeping?i.bodies(E,V,M):(N.showConvexHulls&&i.bodyConvexHulls(E,V,M),i.bodyWireframes(E,V,M)),N.showBounds&&i.bodyBounds(E,V,M),(N.showAxes||N.showAngleIndicator)&&i.bodyAxes(E,V,M),N.showPositions&&i.bodyPositions(E,V,M),N.showVelocity&&i.bodyVelocity(E,V,M),N.showIds&&i.bodyIds(E,V,M),N.showSeparations&&i.separations(E,A.pairs.list,M),N.showCollisions&&i.collisions(E,A.pairs.list,M),N.showVertexNumbers&&i.vertexNumbers(E,V,M),N.showMousePosition&&i.mousePosition(E,E.mouse,M),i.constraints(B,M),N.hasBounds&&i.endViewTransform(E),c.trigger(E,"afterRender",R),j.lastElapsed=o.now()-_},i.stats=function(E,k,_){for(var A=E.engine,I=A.world,S=u.allBodies(I),M=0,N=55,j=44,P=0,L=0,F=0;F<S.length;F+=1)M+=S[F].parts.length;var V={Part:M,Body:S.length,Cons:u.allConstraints(I).length,Comp:u.allComposites(I).length,Pair:A.pairs.list.length};k.fillStyle="#0e0f19",k.fillRect(P,L,N*5.5,j),k.font="12px Arial",k.textBaseline="top",k.textAlign="right";for(var B in V){var q=V[B];k.fillStyle="#aaa",k.fillText(B,P+N,L+8),k.fillStyle="#eee",k.fillText(q,P+N,L+26),P+=N}},i.performance=function(E,k){var _=E.engine,A=E.timing,I=A.deltaHistory,S=A.elapsedHistory,M=A.timestampElapsedHistory,N=A.engineDeltaHistory,j=A.engineElapsedHistory,P=_.timing.lastDelta,L=g(I),F=g(S),V=g(N),B=g(j),q=g(M),R=q/L||0,$=1e3/L||0,K=4,D=12,Z=60,oe=34,z=10,J=69;k.fillStyle="#0e0f19",k.fillRect(0,50,D*4+Z*5+22,oe),i.status(k,z,J,Z,K,I.length,Math.round($)+" fps",$/i._goodFps,function(X){return I[X]/L-1}),i.status(k,z+D+Z,J,Z,K,N.length,P.toFixed(2)+" dt",i._goodDelta/P,function(X){return N[X]/V-1}),i.status(k,z+(D+Z)*2,J,Z,K,j.length,B.toFixed(2)+" ut",1-B/i._goodFps,function(X){return j[X]/B-1}),i.status(k,z+(D+Z)*3,J,Z,K,S.length,F.toFixed(2)+" rt",1-F/i._goodFps,function(X){return S[X]/F-1}),i.status(k,z+(D+Z)*4,J,Z,K,M.length,R.toFixed(2)+" x",R*R*R,function(X){return(M[X]/I[X]/R||0)-1})},i.status=function(E,k,_,A,I,S,M,N,j){E.strokeStyle="#888",E.fillStyle="#444",E.lineWidth=1,E.fillRect(k,_+7,A,1),E.beginPath(),E.moveTo(k,_+7-I*o.clamp(.4*j(0),-2,2));for(var P=0;P<A;P+=1)E.lineTo(k+P,_+7-(P<S?I*o.clamp(.4*j(P),-2,2):0));E.stroke(),E.fillStyle="hsl("+o.clamp(25+95*N,0,120)+",100%,60%)",E.fillRect(k,_-7,4,4),E.font="12px Arial",E.textBaseline="middle",E.textAlign="right",E.fillStyle="#eee",E.fillText(M,k+A,_-5)},i.constraints=function(E,k){for(var _=k,A=0;A<E.length;A++){var I=E[A];if(!(!I.render.visible||!I.pointA||!I.pointB)){var S=I.bodyA,M=I.bodyB,N,j;if(S?N=f.add(S.position,I.pointA):N=I.pointA,I.render.type==="pin")_.beginPath(),_.arc(N.x,N.y,3,0,2*Math.PI),_.closePath();else{if(M?j=f.add(M.position,I.pointB):j=I.pointB,_.beginPath(),_.moveTo(N.x,N.y),I.render.type==="spring")for(var P=f.sub(j,N),L=f.perp(f.normalise(P)),F=Math.ceil(o.clamp(I.length/5,12,20)),V,B=1;B<F;B+=1)V=B%2===0?1:-1,_.lineTo(N.x+P.x*(B/F)+L.x*V*4,N.y+P.y*(B/F)+L.y*V*4);_.lineTo(j.x,j.y)}I.render.lineWidth&&(_.lineWidth=I.render.lineWidth,_.strokeStyle=I.render.strokeStyle,_.stroke()),I.render.anchors&&(_.fillStyle=I.render.strokeStyle,_.beginPath(),_.arc(N.x,N.y,3,0,2*Math.PI),_.arc(j.x,j.y,3,0,2*Math.PI),_.closePath(),_.fill())}}},i.bodies=function(E,k,_){var A=_;E.engine;var I=E.options,S=I.showInternalEdges||!I.wireframes,M,N,j,P;for(j=0;j<k.length;j++)if(M=k[j],!!M.render.visible){for(P=M.parts.length>1?1:0;P<M.parts.length;P++)if(N=M.parts[P],!!N.render.visible){if(I.showSleeping&&M.isSleeping?A.globalAlpha=.5*N.render.opacity:N.render.opacity!==1&&(A.globalAlpha=N.render.opacity),N.render.sprite&&N.render.sprite.texture&&!I.wireframes){var L=N.render.sprite,F=T(E,L.texture);A.translate(N.position.x,N.position.y),A.rotate(N.angle),A.drawImage(F,F.width*-L.xOffset*L.xScale,F.height*-L.yOffset*L.yScale,F.width*L.xScale,F.height*L.yScale),A.rotate(-N.angle),A.translate(-N.position.x,-N.position.y)}else{if(N.circleRadius)A.beginPath(),A.arc(N.position.x,N.position.y,N.circleRadius,0,2*Math.PI);else{A.beginPath(),A.moveTo(N.vertices[0].x,N.vertices[0].y);for(var V=1;V<N.vertices.length;V++)!N.vertices[V-1].isInternal||S?A.lineTo(N.vertices[V].x,N.vertices[V].y):A.moveTo(N.vertices[V].x,N.vertices[V].y),N.vertices[V].isInternal&&!S&&A.moveTo(N.vertices[(V+1)%N.vertices.length].x,N.vertices[(V+1)%N.vertices.length].y);A.lineTo(N.vertices[0].x,N.vertices[0].y),A.closePath()}I.wireframes?(A.lineWidth=1,A.strokeStyle="#bbb",A.stroke()):(A.fillStyle=N.render.fillStyle,N.render.lineWidth&&(A.lineWidth=N.render.lineWidth,A.strokeStyle=N.render.strokeStyle,A.stroke()),A.fill())}A.globalAlpha=1}}},i.bodyWireframes=function(E,k,_){var A=_,I=E.options.showInternalEdges,S,M,N,j,P;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.render.visible)for(P=S.parts.length>1?1:0;P<S.parts.length;P++){for(M=S.parts[P],A.moveTo(M.vertices[0].x,M.vertices[0].y),j=1;j<M.vertices.length;j++)!M.vertices[j-1].isInternal||I?A.lineTo(M.vertices[j].x,M.vertices[j].y):A.moveTo(M.vertices[j].x,M.vertices[j].y),M.vertices[j].isInternal&&!I&&A.moveTo(M.vertices[(j+1)%M.vertices.length].x,M.vertices[(j+1)%M.vertices.length].y);A.lineTo(M.vertices[0].x,M.vertices[0].y)}A.lineWidth=1,A.strokeStyle="#bbb",A.stroke()},i.bodyConvexHulls=function(E,k,_){var A=_,I,S,M;for(A.beginPath(),S=0;S<k.length;S++)if(I=k[S],!(!I.render.visible||I.parts.length===1)){for(A.moveTo(I.vertices[0].x,I.vertices[0].y),M=1;M<I.vertices.length;M++)A.lineTo(I.vertices[M].x,I.vertices[M].y);A.lineTo(I.vertices[0].x,I.vertices[0].y)}A.lineWidth=1,A.strokeStyle="rgba(255,255,255,0.2)",A.stroke()},i.vertexNumbers=function(E,k,_){var A=_,I,S,M;for(I=0;I<k.length;I++){var N=k[I].parts;for(M=N.length>1?1:0;M<N.length;M++){var j=N[M];for(S=0;S<j.vertices.length;S++)A.fillStyle="rgba(255,255,255,0.2)",A.fillText(I+"_"+S,j.position.x+(j.vertices[S].x-j.position.x)*.8,j.position.y+(j.vertices[S].y-j.position.y)*.8)}}},i.mousePosition=function(E,k,_){var A=_;A.fillStyle="rgba(255,255,255,0.8)",A.fillText(k.position.x+" "+k.position.y,k.position.x+5,k.position.y-5)},i.bodyBounds=function(E,k,_){var A=_;E.engine;var I=E.options;A.beginPath();for(var S=0;S<k.length;S++){var M=k[S];if(M.render.visible)for(var N=k[S].parts,j=N.length>1?1:0;j<N.length;j++){var P=N[j];A.rect(P.bounds.min.x,P.bounds.min.y,P.bounds.max.x-P.bounds.min.x,P.bounds.max.y-P.bounds.min.y)}}I.wireframes?A.strokeStyle="rgba(255,255,255,0.08)":A.strokeStyle="rgba(0,0,0,0.1)",A.lineWidth=1,A.stroke()},i.bodyAxes=function(E,k,_){var A=_;E.engine;var I=E.options,S,M,N,j;for(A.beginPath(),M=0;M<k.length;M++){var P=k[M],L=P.parts;if(P.render.visible)if(I.showAxes)for(N=L.length>1?1:0;N<L.length;N++)for(S=L[N],j=0;j<S.axes.length;j++){var F=S.axes[j];A.moveTo(S.position.x,S.position.y),A.lineTo(S.position.x+F.x*20,S.position.y+F.y*20)}else for(N=L.length>1?1:0;N<L.length;N++)for(S=L[N],j=0;j<S.axes.length;j++)A.moveTo(S.position.x,S.position.y),A.lineTo((S.vertices[0].x+S.vertices[S.vertices.length-1].x)/2,(S.vertices[0].y+S.vertices[S.vertices.length-1].y)/2)}I.wireframes?(A.strokeStyle="indianred",A.lineWidth=1):(A.strokeStyle="rgba(255, 255, 255, 0.4)",A.globalCompositeOperation="overlay",A.lineWidth=2),A.stroke(),A.globalCompositeOperation="source-over"},i.bodyPositions=function(E,k,_){var A=_;E.engine;var I=E.options,S,M,N,j;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.render.visible)for(j=0;j<S.parts.length;j++)M=S.parts[j],A.arc(M.position.x,M.position.y,3,0,2*Math.PI,!1),A.closePath();for(I.wireframes?A.fillStyle="indianred":A.fillStyle="rgba(0,0,0,0.5)",A.fill(),A.beginPath(),N=0;N<k.length;N++)S=k[N],S.render.visible&&(A.arc(S.positionPrev.x,S.positionPrev.y,2,0,2*Math.PI,!1),A.closePath());A.fillStyle="rgba(255,165,0,0.8)",A.fill()},i.bodyVelocity=function(E,k,_){var A=_;A.beginPath();for(var I=0;I<k.length;I++){var S=k[I];if(S.render.visible){var M=a.getVelocity(S);A.moveTo(S.position.x,S.position.y),A.lineTo(S.position.x+M.x,S.position.y+M.y)}}A.lineWidth=3,A.strokeStyle="cornflowerblue",A.stroke()},i.bodyIds=function(E,k,_){var A=_,I,S;for(I=0;I<k.length;I++)if(k[I].render.visible){var M=k[I].parts;for(S=M.length>1?1:0;S<M.length;S++){var N=M[S];A.font="12px Arial",A.fillStyle="rgba(255,255,255,0.5)",A.fillText(N.id,N.position.x+10,N.position.y-10)}}},i.collisions=function(E,k,_){var A=_,I=E.options,S,M,N,j;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.isActive)for(M=S.collision,j=0;j<S.activeContacts.length;j++){var P=S.activeContacts[j],L=P.vertex;A.rect(L.x-1.5,L.y-1.5,3.5,3.5)}for(I.wireframes?A.fillStyle="rgba(255,255,255,0.7)":A.fillStyle="orange",A.fill(),A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.isActive&&(M=S.collision,S.activeContacts.length>0)){var F=S.activeContacts[0].vertex.x,V=S.activeContacts[0].vertex.y;S.activeContacts.length===2&&(F=(S.activeContacts[0].vertex.x+S.activeContacts[1].vertex.x)/2,V=(S.activeContacts[0].vertex.y+S.activeContacts[1].vertex.y)/2),M.bodyB===M.supports[0].body||M.bodyA.isStatic===!0?A.moveTo(F-M.normal.x*8,V-M.normal.y*8):A.moveTo(F+M.normal.x*8,V+M.normal.y*8),A.lineTo(F,V)}I.wireframes?A.strokeStyle="rgba(255,165,0,0.7)":A.strokeStyle="orange",A.lineWidth=1,A.stroke()},i.separations=function(E,k,_){var A=_,I=E.options,S,M,N,j,P;for(A.beginPath(),P=0;P<k.length;P++)if(S=k[P],!!S.isActive){M=S.collision,N=M.bodyA,j=M.bodyB;var L=1;!j.isStatic&&!N.isStatic&&(L=.5),j.isStatic&&(L=0),A.moveTo(j.position.x,j.position.y),A.lineTo(j.position.x-M.penetration.x*L,j.position.y-M.penetration.y*L),L=1,!j.isStatic&&!N.isStatic&&(L=.5),N.isStatic&&(L=0),A.moveTo(N.position.x,N.position.y),A.lineTo(N.position.x+M.penetration.x*L,N.position.y+M.penetration.y*L)}I.wireframes?A.strokeStyle="rgba(255,165,0,0.5)":A.strokeStyle="orange",A.stroke()},i.inspector=function(E,k){E.engine;var _=E.selected,A=E.render,I=A.options,S;if(I.hasBounds){var M=A.bounds.max.x-A.bounds.min.x,N=A.bounds.max.y-A.bounds.min.y,j=M/A.options.width,P=N/A.options.height;k.scale(1/j,1/P),k.translate(-A.bounds.min.x,-A.bounds.min.y)}for(var L=0;L<_.length;L++){var F=_[L].data;switch(k.translate(.5,.5),k.lineWidth=1,k.strokeStyle="rgba(255,165,0,0.9)",k.setLineDash([1,2]),F.type){case"body":S=F.bounds,k.beginPath(),k.rect(Math.floor(S.min.x-3),Math.floor(S.min.y-3),Math.floor(S.max.x-S.min.x+6),Math.floor(S.max.y-S.min.y+6)),k.closePath(),k.stroke();break;case"constraint":var V=F.pointA;F.bodyA&&(V=F.pointB),k.beginPath(),k.arc(V.x,V.y,10,0,2*Math.PI),k.closePath(),k.stroke();break}k.setLineDash([]),k.translate(-.5,-.5)}E.selectStart!==null&&(k.translate(.5,.5),k.lineWidth=1,k.strokeStyle="rgba(255,165,0,0.6)",k.fillStyle="rgba(255,165,0,0.1)",S=E.selectBounds,k.beginPath(),k.rect(Math.floor(S.min.x),Math.floor(S.min.y),Math.floor(S.max.x-S.min.x),Math.floor(S.max.y-S.min.y)),k.closePath(),k.stroke(),k.fill(),k.translate(-.5,-.5)),I.hasBounds&&k.setTransform(1,0,0,1,0,0)};var p=function(E,k){var _=E.engine,A=E.timing,I=A.historySize,S=_.timing.timestamp;A.delta=k-A.lastTime||i._goodDelta,A.lastTime=k,A.timestampElapsed=S-A.lastTimestamp||0,A.lastTimestamp=S,A.deltaHistory.unshift(A.delta),A.deltaHistory.length=Math.min(A.deltaHistory.length,I),A.engineDeltaHistory.unshift(_.timing.lastDelta),A.engineDeltaHistory.length=Math.min(A.engineDeltaHistory.length,I),A.timestampElapsedHistory.unshift(A.timestampElapsed),A.timestampElapsedHistory.length=Math.min(A.timestampElapsedHistory.length,I),A.engineElapsedHistory.unshift(_.timing.lastElapsed),A.engineElapsedHistory.length=Math.min(A.engineElapsedHistory.length,I),A.elapsedHistory.unshift(A.lastElapsed),A.elapsedHistory.length=Math.min(A.elapsedHistory.length,I)},g=function(E){for(var k=0,_=0;_<E.length;_+=1)k+=E[_];return k/E.length||0},y=function(E,k){var _=document.createElement("canvas");return _.width=E,_.height=k,_.oncontextmenu=function(){return!1},_.onselectstart=function(){return!1},_},v=function(E){var k=E.getContext("2d"),_=window.devicePixelRatio||1,A=k.webkitBackingStorePixelRatio||k.mozBackingStorePixelRatio||k.msBackingStorePixelRatio||k.oBackingStorePixelRatio||k.backingStorePixelRatio||1;return _/A},T=function(E,k){var _=E.textures[k];return _||(_=E.textures[k]=new Image,_.src=k,_)},C=function(E,k){var _=k;/(jpg|gif|png)$/.test(k)&&(_="url("+k+")"),E.canvas.style.background=_,E.canvas.style.backgroundSize="contain",E.currentBackground=k}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(5),o=s(17),u=s(0);(function(){var l,c;if(typeof window<"u"&&(l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame,c=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),!l){var f;l=function(h){f=setTimeout(function(){h(u.now())},1e3/60)},c=function(){clearTimeout(f)}}i.create=function(h){var d={fps:60,deltaSampleSize:60,counterTimestamp:0,frameCounter:0,deltaHistory:[],timePrev:null,frameRequestId:null,isFixed:!1,enabled:!0},m=u.extend(d,h);return m.delta=m.delta||1e3/m.fps,m.deltaMin=m.deltaMin||1e3/m.fps,m.deltaMax=m.deltaMax||1e3/(m.fps*.5),m.fps=1e3/m.delta,m},i.run=function(h,d){return typeof h.positionIterations<"u"&&(d=h,h=i.create()),(function m(p){h.frameRequestId=l(m),p&&h.enabled&&i.tick(h,d,p)})(),h},i.tick=function(h,d,m){var p=d.timing,g;h.isFixed?g=h.delta:(g=m-h.timePrev||h.delta,h.timePrev=m,h.deltaHistory.push(g),h.deltaHistory=h.deltaHistory.slice(-h.deltaSampleSize),g=Math.min.apply(null,h.deltaHistory),g=g<h.deltaMin?h.deltaMin:g,g=g>h.deltaMax?h.deltaMax:g,h.delta=g);var y={timestamp:p.timestamp};a.trigger(h,"beforeTick",y),h.frameCounter+=1,m-h.counterTimestamp>=1e3&&(h.fps=h.frameCounter*((m-h.counterTimestamp)/1e3),h.counterTimestamp=m,h.frameCounter=0),a.trigger(h,"tick",y),a.trigger(h,"beforeUpdate",y),o.update(d,g),a.trigger(h,"afterUpdate",y),a.trigger(h,"afterTick",y)},i.stop=function(h){c(h.frameRequestId)},i.start=function(h,d){i.run(h,d)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(8),o=s(0),u=o.deprecated;(function(){i.collides=function(l,c){return a.collides(l,c)},u(i,"collides","SAT.collides ➤ replaced by Collision.collides")})()}),(function(n,r,s){var i={};n.exports=i,s(1);var a=s(0);(function(){i.pathToVertices=function(o,u){typeof window<"u"&&!("SVGPathSeg"in window)&&a.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var l,c,f,h,d,m,p,g,y,v,T=[],C,E,k=0,_=0,A=0;u=u||15;var I=function(M,N,j){var P=j%2===1&&j>1;if(!y||M!=y.x||N!=y.y){y&&P?(C=y.x,E=y.y):(C=0,E=0);var L={x:C+M,y:E+N};(P||!y)&&(y=L),T.push(L),_=C+M,A=E+N}},S=function(M){var N=M.pathSegTypeAsLetter.toUpperCase();if(N!=="Z"){switch(N){case"M":case"L":case"T":case"C":case"S":case"Q":_=M.x,A=M.y;break;case"H":_=M.x;break;case"V":A=M.y;break}I(_,A,M.pathSegType)}};for(i._svgPathToAbsolute(o),f=o.getTotalLength(),m=[],l=0;l<o.pathSegList.numberOfItems;l+=1)m.push(o.pathSegList.getItem(l));for(p=m.concat();k<f;){if(v=o.getPathSegAtLength(k),d=m[v],d!=g){for(;p.length&&p[0]!=d;)S(p.shift());g=d}switch(d.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":h=o.getPointAtLength(k),I(h.x,h.y,0);break}k+=u}for(l=0,c=p.length;l<c;++l)S(p[l]);return T},i._svgPathToAbsolute=function(o){for(var u,l,c,f,h,d,m=o.pathSegList,p=0,g=0,y=m.numberOfItems,v=0;v<y;++v){var T=m.getItem(v),C=T.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(C))"x"in T&&(p=T.x),"y"in T&&(g=T.y);else switch("x1"in T&&(c=p+T.x1),"x2"in T&&(h=p+T.x2),"y1"in T&&(f=g+T.y1),"y2"in T&&(d=g+T.y2),"x"in T&&(p+=T.x),"y"in T&&(g+=T.y),C){case"m":m.replaceItem(o.createSVGPathSegMovetoAbs(p,g),v);break;case"l":m.replaceItem(o.createSVGPathSegLinetoAbs(p,g),v);break;case"h":m.replaceItem(o.createSVGPathSegLinetoHorizontalAbs(p),v);break;case"v":m.replaceItem(o.createSVGPathSegLinetoVerticalAbs(g),v);break;case"c":m.replaceItem(o.createSVGPathSegCurvetoCubicAbs(p,g,c,f,h,d),v);break;case"s":m.replaceItem(o.createSVGPathSegCurvetoCubicSmoothAbs(p,g,h,d),v);break;case"q":m.replaceItem(o.createSVGPathSegCurvetoQuadraticAbs(p,g,c,f),v);break;case"t":m.replaceItem(o.createSVGPathSegCurvetoQuadraticSmoothAbs(p,g),v);break;case"a":m.replaceItem(o.createSVGPathSegArcAbs(p,g,T.r1,T.r2,T.angle,T.largeArcFlag,T.sweepFlag),v);break;case"z":case"Z":p=u,g=l;break}(C=="M"||C=="m")&&(u=p,l=g)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(6);s(0),(function(){i.create=a.create,i.add=a.add,i.remove=a.remove,i.clear=a.clear,i.addComposite=a.addComposite,i.addBody=a.addBody,i.addConstraint=a.addConstraint})()})])})})(as)),as.exports}var Lx=Rx();const ln=xu(Lx);{const e=ln.Resolver;e&&typeof e._restingThresh=="number"&&(e._restingThresh=1.4)}const Mx=6,Bt=28,cn=.92,xa=1.12,Px=34;function $l(e,t,n){return Math.hypot(t-e.startX,n-e.startY)<Mx?"click":"drag"}function Dx(e){const t=e.length;if(t===0)return"";const n=s=>`${s.x.toFixed(1)} ${s.y.toFixed(1)}`;if(t===1)return`M ${n(e[0])}`;if(t===2)return`M ${n(e[0])} L ${n(e[1])}`;let r=`M ${n(e[0])}`;for(let s=1;s<t-1;s++){const i=e[s],a=e[s+1];r+=` Q ${n(i)} ${((i.x+a.x)/2).toFixed(1)} ${((i.y+a.y)/2).toFixed(1)}`}return`${r} L ${n(e[t-1])}`}function Ox(e,t){return e*Math.exp(-t/90)}function Fx(e,t,n,r){const s=`translate3d(${e.toFixed(1)}px, ${t.toFixed(1)}px, 0)`;if(n<.01)return s;const i=r*180/Math.PI,a=Math.min(.35,n);return`${s} rotate(${i.toFixed(1)}deg) scale(${(1+a).toFixed(3)}, ${(1-a).toFixed(3)}) rotate(${(-i).toFixed(1)}deg)`}const Sh=4e-5,Bx=5e-4;function Ah(e,t,n){return Math.sin(n*37e-5+t*.0013)*.6+Math.sin(n*19e-5+e*7e-4+1.7)*.4}function Ch(e){switch(e){case"storm":return{wind:.95,gust:1,rainRate:.006,snowRate:0,airDrag:1.05};case"rain":return{wind:.6,gust:.25,rainRate:.004,snowRate:0,airDrag:1};case"snow":return{wind:.25,gust:0,rainRate:0,snowRate:4e-4,airDrag:1};case"fog":return{wind:.06,gust:0,rainRate:0,snowRate:0,airDrag:1.7};case"cloudy":return{wind:.4,gust:.1,rainRate:0,snowRate:0,airDrag:1};case"clear":default:return{wind:.3,gust:0,rainRate:0,snowRate:0,airDrag:1}}}function _h(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,(t>>>0)/4294967295}const Fr=120,jx=.9,Wl=.7,Hx=.09,Ux=2.2,zx=2,ba=Bt*2.45,Vx=.006,ya=22,Ea=.06;function qx(e){var j;const t=e.ballRadius??Bt,n=Ch(e.weather??"clear"),{Engine:r,Bodies:s,Body:i,Composite:a,Constraint:o,Events:u}=ln,l=r.create();l.gravity.y=1,l.positionIterations=8,l.velocityIterations=4;const c=e.nodes.map(P=>{var B,q;const L=((B=P.spawn)==null?void 0:B.x)??P.x,F=((q=P.spawn)==null?void 0:q.y)??P.y,V=s.circle(L,F,t,{restitution:.5,friction:.01,frictionAir:.03*n.airDrag,density:P.isExam?.0016:.001,inertia:1/0,isStatic:!!P.locked,collisionFilter:{group:0,category:2,mask:6}});return{nodeId:P.id,body:V,layoutX:P.x,layoutY:P.y,isExam:!!P.isExam,snow:0,field:0,squash:0,squashAngle:0}});for(const P of c){a.add(l.world,P.body);const L=(j=e.nodes.find(F=>F.id===P.nodeId))==null?void 0:j.spawn;L&&(L.vx!==void 0||L.vy!==void 0)&&i.setVelocity(P.body,{x:L.vx??0,y:L.vy??0})}const f=Fr/2,h={isStatic:!0,restitution:.4,friction:.05,collisionFilter:{category:4,mask:2}},d=(P,L)=>({x:Math.min(e.width-t,Math.max(t,P)),y:Math.min(e.height-t,Math.max(t,L))});a.add(l.world,[s.rectangle(e.width/2,-f,e.width*3,Fr,h),s.rectangle(e.width/2,e.height+f,e.width*3,Fr,h),s.rectangle(-f,e.height/2,Fr,e.height*3,h),s.rectangle(e.width+f,e.height/2,Fr,e.height*3,h)]);const m=P=>({x:P.body.position.x,y:P.body.position.y+t*cn}),p=[];function g(P,L,F,V,B){return"body"in P?o.create({bodyA:P.body,pointA:P.offset,bodyB:L,pointB:F,length:V,stiffness:B,damping:.05}):o.create({pointA:P.point,bodyB:L,pointB:F,length:V,stiffness:B,damping:.05})}function y(P,L,F,V){const B={x:F.body.position.x,y:F.body.position.y+t*cn},q=B.x-P.x,R=B.y-P.y,$=Math.max(60,Math.hypot(q,R)),K=Math.max(5,Math.min(14,Math.round($/Px))),D=$*xa/K,Z=[];let oe=L?{body:L,offset:{x:P.x-L.position.x,y:P.y-L.position.y}}:{point:P},z=!0;for(let J=1;J<K;J++){const X=J/K,ce=Math.sin(Math.PI*X)*$*(xa-1)*.85,he=s.circle(P.x+q*X,P.y+R*X+ce,3.5,{density:7e-4,frictionAir:.1*n.airDrag,collisionFilter:{category:8,mask:0}});Z.push(he),a.add(l.world,he),a.add(l.world,g(oe,he,void 0,D,z?Wl:jx)),z=!1,oe={body:he,offset:{x:0,y:0}}}a.add(l.world,g(oe,F.body,{x:0,y:t*cn},D,Wl)),p.push({from:V,to:F.nodeId,restLen:$*xa,particles:Z})}const v=c[0],T=v?{x:e.anchorKnotX??v.layoutX,y:ks}:{x:e.width/2,y:ks};v&&y(T,null,v,"__anchor");for(let P=0;P<c.length-1;P++){const L=c[P],F=c[P+1];y(m(L),L.body,F,L.nodeId)}const C=c[c.length-1],E=e.nextKnot&&(C!=null&&C.isExam)?e.nextKnot:void 0;E&&C&&y(E,null,C,"__next");const k=new Map;for(const P of c){let L=0;for(const V of p)if(V.from===P.nodeId||V.to===P.nodeId)for(const B of V.particles)L+=B.mass*.5;const F=Math.min(.25,L/P.body.mass);k.set(P.nodeId,(1+F)*(.96+_h(P.nodeId)*.08))}let _=0,A=1;u.on(l,"beforeUpdate",()=>{const P=l.timing.timestamp;_*=.97,n.gust>0&&Math.random()<.0025*n.gust&&(_=n.gust*(.6+Math.random()*.4),A=Math.random()<.5?-1:1);for(const L of c){const F=L.body.mass,V=l.gravity.y*l.gravity.scale,B=Ah(L.body.position.x,L.body.position.y,P)*n.wind*Sh*F+A*_*Bx*F;let q=-F*V*(k.get(L.nodeId)??1);n.rainRate>0&&Math.random()<n.rainRate&&(q+=F*V*.35,i.applyForce(L.body,L.body.position,{x:(Math.random()-.5)*F*V*.3,y:0})),i.applyForce(L.body,L.body.position,{x:B,y:q})}});const I=[],S=(P,L,F,V)=>{if(P.snow<=Ea)return;const B=Math.max(1,Math.min(V,Math.round(P.snow*V)+1));for(let q=0;q<B;q++){const R=-(.35+Math.random()*1.9),$=t*(.55+Math.random()*.45);I.push({x:P.body.position.x+Math.cos(R)*$,y:P.body.position.y+Math.sin(R)*$,vx:P.body.velocity.x*.75+L.x*(.5+Math.random()*1.8)+(Math.random()-.5)*1.2,vy:P.body.velocity.y*.75+L.y*(.5+Math.random()*1.8)-.6-Math.random()*.8,amount:.02+Math.min(.05,F*.004)})}P.snow=Math.max(Ea*.5,P.snow-B*(.03+Math.min(.07,F*.005))),I.length>96&&I.splice(0,I.length-96)},M=[];u.on(l,"collisionStart",P=>{var L;for(const F of P.pairs){const{bodyA:V,bodyB:B}=F,q=c.find(z=>z.body===V),R=c.find(z=>z.body===B);if(!q&&!R)continue;const $={x:V.velocity.x-B.velocity.x,y:V.velocity.y-B.velocity.y},K=Math.hypot($.x,$.y);if(K<Ux)continue;const D=F.collision.normal,Z=(L=F.collision.supports)==null?void 0:L[0];M.push(Z?{x:Z.x,y:Z.y,speed:K}:{x:(V.position.x+B.position.x)/2,y:(V.position.y+B.position.y)/2,speed:K}),M.length>64&&M.shift();const oe=Math.min(.32,K*.028);q&&oe>q.squash&&(q.squash=oe,q.squashAngle=Math.atan2(D.y,D.x)),R&&oe>R.squash&&(R.squash=oe,R.squashAngle=Math.atan2(-D.y,-D.x)),q&&S(q,{x:D.x,y:D.y},K,5),R&&S(R,{x:-D.x,y:-D.y},K,5)}}),u.on(l,"afterUpdate",()=>{if(!(n.snowRate<=0))for(const P of c)P.snow=Math.min(1,P.snow+n.snowRate)});let N=null;return{balls:c,links:p,anchor:T,nextKnot:E,ball(P){return c.find(L=>L.nodeId===P)},step(P){r.update(l,Math.min(33,Math.max(8,P)));for(let L=0;L<c.length;L++){const F=c[L];for(let V=L+1;V<c.length;V++){const B=c[V],q=B.body.position.x-F.body.position.x,R=B.body.position.y-F.body.position.y,$=q*q+R*R;if($>=ba*ba||$<.01)continue;const K=Math.sqrt($),D=(K-2*t)/(ba-2*t),Z=D<=0?1:D>=1?0:1-D,z=Math.hypot(F.body.velocity.x-B.body.velocity.x,F.body.velocity.y-B.body.velocity.y)<1.2?Vx*Z*Z:0,J=q/K,X=R/K;F.body.isStatic||i.applyForce(F.body,F.body.position,{x:-J*z*F.body.mass,y:-X*z*F.body.mass}),B.body.isStatic||i.applyForce(B.body,B.body.position,{x:J*z*B.body.mass,y:X*z*B.body.mass}),F.field=Math.max(F.field,Z),B.field=Math.max(B.field,Z)}}for(const L of c)L.field*=.88;for(const L of c){if(L.body.isStatic)continue;const F=L.body.velocity,V=Math.hypot(F.x,F.y);V>ya&&i.setVelocity(L.body,{x:F.x/V*ya,y:F.y/V*ya})}for(let L=0;L<c.length;L++){const F=c[L];for(let V=L+1;V<c.length;V++){const B=c[V];let q=B.body.position.x-F.body.position.x,R=B.body.position.y-F.body.position.y,$=Math.hypot(q,R);if($>=t*2)continue;$<.01&&(q=1,R=0,$=1);const K=t*2-$+.05,D=q/$,Z=R/$;F.body.isStatic&&B.body.isStatic||(F.body.isStatic?i.setPosition(B.body,{x:B.body.position.x+D*K,y:B.body.position.y+Z*K}):B.body.isStatic?i.setPosition(F.body,{x:F.body.position.x-D*K,y:F.body.position.y-Z*K}):(i.setPosition(F.body,{x:F.body.position.x-D*K/2,y:F.body.position.y-Z*K/2}),i.setPosition(B.body,{x:B.body.position.x+D*K/2,y:B.body.position.y+Z*K/2})))}}for(const L of c){const F=Math.hypot(L.body.velocity.x,L.body.velocity.y);L.snow>Ea&&F>zx&&S(L,{x:L.body.velocity.x/F,y:L.body.velocity.y/F},F,2)}for(const L of c){if(L.body.isStatic)continue;const F=L.body.position.x,V=L.body.position.y,B=Math.min(e.width-t,Math.max(t,F)),q=Math.min(e.height-t,Math.max(t,V));(B!==F||q!==V)&&(i.setPosition(L.body,{x:B,y:q}),i.setVelocity(L.body,{x:F<t||F>e.width-t?0:L.body.velocity.x,y:V<t||V>e.height-t?0:L.body.velocity.y}))}},beginDrag(P,L,F){this.endDrag();const V=this.ball(P);if(!V)return;const B=o.create({pointA:d(L,F),bodyB:V.body,length:0,stiffness:Hx,damping:.12});a.add(l.world,B),N={constraint:B,nodeId:P}},moveDrag(P,L){if(!N)return;const F=d(P,L);N.constraint.pointA=F},endDrag(){N&&(a.remove(l.world,N.constraint),N=null)},isDragging(){return N!==null},drainImpacts(){const P=M.slice();return M.length=0,P},drainFlakes(){const P=I.slice();return I.length=0,P},dispose(){this.endDrag(),u.off(l,"beforeUpdate"),u.off(l,"afterUpdate"),u.off(l,"collisionStart"),a.clear(l.world,!1),r.clear(l)}}}const ks=-12;function Ui(e,t,n=20){return t<=n*2?t/2:n+_h(e)*(t-n*2)}function $x(e,t,n,r=Bt){if(t<=0||Math.abs(t-n)<=1)return e;const s=n/t,i={x:Math.min(n-r,Math.max(r,e.x*s)),y:e.y,vy:e.vy};return e.vx!==void 0&&(i.vx=e.vx*s),i}const zn=(e,t,n)=>e+(t-e)*n,Vs=(e,t,n)=>e<t?t:e>n?n:e,mi=e=>e<0?0:e>1?1:e*e*(3-2*e);function Vn(e,t,n){return[zn(e[0],t[0],n),zn(e[1],t[1],n),zn(e[2],t[2],n)]}const Ta=e=>`rgb(${e[0]|0},${e[1]|0},${e[2]|0})`,Er=(e,t)=>`rgba(${e[0]|0},${e[1]|0},${e[2]|0},${t})`;function qs(){return[{t:0,top:[8,10,26],mid:[16,20,44],hor:[34,30,58]},{t:.12,top:[30,32,72],mid:[78,56,104],hor:[158,100,116]},{t:.22,top:[124,156,214],mid:[232,152,120],hor:[250,196,128]},{t:.36,top:[80,142,196],mid:[132,186,226],hor:[188,214,232]},{t:.5,top:[60,120,178],mid:[108,168,212],hor:[168,200,226]},{t:.62,top:[120,132,152],mid:[150,150,160],hor:[180,178,182]},{t:.74,top:[70,60,88],mid:[108,78,110],hor:[180,110,100]},{t:.86,top:[40,30,60],mid:[88,44,76],hor:[168,72,72]},{t:1,top:[8,10,26],mid:[16,20,44],hor:[34,30,58]}]}function $s(e,t){return e.map(n=>({t:n.t,top:t(n.top),mid:t(n.mid),hor:t(n.hor)}))}const va=()=>$s(qs(),e=>[e[0]*1,e[1]*1.15,e[2]*.7]),zi=()=>$s(qs(),e=>[e[0]*.75,e[1]*1,Math.min(255,e[2]*1.25)]),ka=()=>$s(qs(),e=>[Math.min(255,e[0]*1.35),e[1]*.8,e[2]*.55]),Yl=()=>$s(qs(),e=>{const t=(e[0]+e[1]+e[2])/3;return[t*.7+e[0]*.1,t*.7+e[1]*.1,t*.95+e[2]*.15]}),wa={far:[28,50,36],near:[56,110,52],snowy:!1},Vi={far:[20,48,30],near:[34,82,40],snowy:!1},Sa={far:[54,36,24],near:[128,78,36],snowy:!1},Gl={far:[60,66,82],near:[232,236,244],snowy:!0};function Ft(e){return t=>{let n=e;return t>.3&&t<.5?n=zn(n,Math.min(1,n+.2),mi((t-.3)/.2)):t>=.5&&t<.74?n=Math.min(1,n+.15):t>=.74&&t<.84&&(n=zn(n,Math.max(0,n-.3),mi((t-.74)/.1))),Vs(n,0,1)}}const Ih={"spring|clear":{season:"spring",weather:"clear",sky:va(),cloudCover:Ft(.1),particles:"none",lightning:!1,fogAlpha:0,ground:wa},"spring|cloudy":{season:"spring",weather:"cloudy",sky:va(),cloudCover:Ft(.5),particles:"none",lightning:!1,fogAlpha:0,ground:wa},"spring|rain":{season:"spring",weather:"rain",sky:va(),cloudCover:Ft(.85),particles:"rain",lightning:!1,fogAlpha:0,ground:wa},"summer|clear":{season:"summer",weather:"clear",sky:zi(),cloudCover:Ft(.1),particles:"none",lightning:!1,fogAlpha:0,ground:Vi},"summer|cloudy":{season:"summer",weather:"cloudy",sky:zi(),cloudCover:Ft(.5),particles:"none",lightning:!1,fogAlpha:0,ground:Vi},"summer|rain":{season:"summer",weather:"rain",sky:zi(),cloudCover:Ft(.85),particles:"rain",lightning:!1,fogAlpha:0,ground:Vi},"summer|storm":{season:"summer",weather:"storm",sky:zi(),cloudCover:Ft(1),particles:"rain",lightning:!0,fogAlpha:0,ground:Vi},"autumn|clear":{season:"autumn",weather:"clear",sky:ka(),cloudCover:Ft(.15),particles:"none",lightning:!1,fogAlpha:0,ground:Sa,sunTint:[255,180,110]},"autumn|cloudy":{season:"autumn",weather:"cloudy",sky:ka(),cloudCover:Ft(.55),particles:"none",lightning:!1,fogAlpha:0,ground:Sa},"autumn|storm":{season:"autumn",weather:"storm",sky:ka(),cloudCover:Ft(1),particles:"rain",lightning:!0,fogAlpha:0,ground:Sa},"winter|clear":{season:"winter",weather:"clear",sky:Yl(),cloudCover:Ft(.2),particles:"none",lightning:!1,fogAlpha:0,ground:Gl,sunTint:[220,230,245]},"winter|snow":{season:"winter",weather:"snow",sky:Yl(),cloudCover:Ft(.9),particles:"snow",lightning:!1,fogAlpha:.2,ground:Gl}},Kl=Object.keys(Ih);function Wx(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function Yx(e){const t=`${e??"none"}:${Math.floor(performance.now()/1e3)}`;return Kl[Wx(t)%Kl.length]}function Gx(e,t){let n=0;for(;n<t.length-1&&e>t[n+1].t;)n++;const r=t[n],s=t[Math.min(n+1,t.length-1)],i=mi(Vs((e-r.t)/(s.t-r.t||1),0,1));return{top:Vn(r.top,s.top,i),mid:Vn(r.mid,s.mid,i),hor:Vn(r.hor,s.hor,i)}}function Kx(e,t,n,r,s){if(e<r||e>s)return null;const i=(e-r)/(s-r),a=zn(.1,.9,i),o=n*.26,u=n*.98,l=u-Math.sin(i*Math.PI)*(u-o);return{x:a*t,y:l,peakness:Math.sin(i*Math.PI)}}function Xx(e,t,n,r,s){let i;if(e>=r)i=(e-r)/(1-r+s);else if(e<=s)i=(1-r+e)/(1-r+s);else return null;const a=zn(.12,.88,i),o=n*.26,u=n*.98,l=u-Math.sin(i*Math.PI)*(u-o);return{x:a*t,y:l,peakness:Math.sin(i*Math.PI)}}function Nh(e){return function(){e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function Xl(e,t){const n=Nh(20260809),r=Math.max(28,Math.round(e*t/7e3)),s=[];for(let i=0;i<r;i++)s.push({x:n(),y:n()*.7,r:n()*1.2+.3,tw:n()*Math.PI*2,sp:.6+n()*1.4,big:n()<.06});return s}function Qx(){const e=Nh(7),t=[];for(let n=0;n<6;n++)t.push({x:e(),y:.12+e()*.4,s:.55+e()*1.2,speed:18e-6+e()*35e-6,seed:e()*1e3,drift:e()*.035+.008});return t}function Zx(e,t,n,r){const s=e.createLinearGradient(0,0,0,r);s.addColorStop(0,Ta(t.top)),s.addColorStop(.55,Ta(t.mid)),s.addColorStop(1,Ta(t.hor)),e.fillStyle=s,e.fillRect(0,0,n,r)}function Jx(e,t,n,r,s,i){let a=0;if(t<.22?a=mi(1-t/.22):t>.8&&(a=mi((t-.8)/.2)),!(a<=.01))for(const o of n){const u=.55+.45*Math.sin(i*o.sp+o.tw),l=a*u;if(l<.02)continue;e.fillStyle=`rgba(255,248,228,${l})`;const c=o.big?o.r*1.8:o.r;e.beginPath(),e.arc(o.x*r,o.y*s,c,0,Math.PI*2),e.fill(),o.big&&(e.fillStyle=`rgba(255,240,210,${l*.35})`,e.fillRect(o.x*r-c*4,o.y*s-.4,c*8,.8),e.fillRect(o.x*r-.4,o.y*s-c*4,.8,c*8))}}function eb(e,t,n){if(!t)return;const{x:r,y:s,peakness:i}=t,a=28+i*8,o=e.createRadialGradient(r,s,a*.4,r,s,a*5);o.addColorStop(0,"rgba(255,236,190,0.55)"),o.addColorStop(.4,"rgba(255,210,150,0.16)"),o.addColorStop(1,"rgba(255,200,140,0)"),e.fillStyle=o,e.fillRect(r-a*5,s-a*5,a*10,a*10);const u=e.createRadialGradient(r,s,0,r,s,a),l=n??[255,236,180],c=n?Vn(n,[255,214,150],.5):[255,214,150];u.addColorStop(0,"rgba(255,252,238,1)"),u.addColorStop(.7,Er(l,1)),u.addColorStop(1,Er(c,.9)),e.fillStyle=u,e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.fill()}function tb(e,t){if(!t)return;const{x:n,y:r}=t,s=24,i=e.createRadialGradient(n,r,s*.8,n,r,s*5);i.addColorStop(0,"rgba(220,232,255,0.38)"),i.addColorStop(.5,"rgba(220,232,255,0.1)"),i.addColorStop(1,"rgba(220,232,255,0)"),e.fillStyle=i,e.fillRect(n-s*5,r-s*5,s*10,s*10);const a=e.createRadialGradient(n-s*.25,r-s*.3,s*.2,n,r,s);a.addColorStop(0,"rgba(255,254,247,1)"),a.addColorStop(.7,"rgba(244,242,232,1)"),a.addColorStop(1,"rgba(214,222,236,1)"),e.fillStyle=a,e.beginPath(),e.arc(n,r,s,0,Math.PI*2),e.fill(),e.fillStyle="rgba(150,160,180,0.16)";const o=[[-10,-6,4],[5,3,5],[-3,9,3],[11,-8,3]];for(const[u,l,c]of o)e.beginPath(),e.arc(n+u,r+l,c,0,Math.PI*2),e.fill()}function nb(e,t,n,r,s,i){const a=18*r,o=[[0,0,1],[-1.1,.1,.8],[1.1,.1,.8],[-.5,-.5,.7],[.6,-.45,.75],[-1.8,.3,.6],[1.8,.3,.6]];e.save(),e.translate(t,n),e.fillStyle=Er([s[0]*.7,s[1]*.7,s[2]*.78],i*.9);for(const[u,l,c]of o)e.beginPath(),e.arc(u*a,l*a*1.1+a*.45,a*c*1.05,0,Math.PI*2),e.fill();e.fillStyle=Er(s,i);for(const[u,l,c]of o)e.beginPath(),e.arc(u*a,l*a,a*c,0,Math.PI*2),e.fill();e.restore()}function rb(e,t,n,r,s,i,a,o,u){const l=a(t);if(l<.02)return;const c=Vn(o.hor,[255,255,255],.35),f=Vn(o.mid,[20,20,30],.45),h=u?f:c;for(let d=0;d<n.length;d++){const m=n[d],p=(m.x+i*m.speed)%1.2-.1,g=m.y+Math.sin(i*1e-4+m.seed)*m.drift;d/n.length<l&&nb(e,p*r,g*s,m.s,h,Vs(l*.92,0,.92))}}const dr=[];let Dn=[];const Gr=[];let On=[];const qi=[],Br=[];let Kr=[];function ib(e,t,n,r,s,i){if(s<.04)return;const a=r*(.02+s*.07),o=.12+s*.73,u=t-r*o,l=t+r*o,c=n-Math.sqrt(Math.max(0,r*r-r*o*(r*o))),f=n-r-a,h=(c+f)/2;e.save(),e.beginPath(),e.moveTo(u,c),e.bezierCurveTo(u,h,t-r*.3,f,t,f),e.bezierCurveTo(t+r*.3,f,l,h,l,c),e.quadraticCurveTo(t,n-r*.78,u,c),e.closePath();const d=e.createLinearGradient(0,f,0,c);d.addColorStop(0,"rgba(255,255,255,0.98)"),d.addColorStop(.65,"rgba(245,250,255,0.95)"),d.addColorStop(1,"rgba(218,230,246,0.9)"),e.fillStyle=d,e.fill(),e.strokeStyle="rgba(168,192,225,0.28)",e.lineWidth=1.5,e.beginPath(),e.moveTo(u,c),e.quadraticCurveTo(t,n-r*.78,l,c),e.stroke(),e.restore()}function Aa(e,t,n,r,s){const i=Math.sin(r),a=Math.cos(r);return{x:e+Math.sin(s)*i*n,y:t-a*n}}function sb(e,t,n,r){e.save(),e.beginPath(),e.arc(t,n,r*.99,0,Math.PI*2),e.clip();const s=e.createRadialGradient(t-r*.35,n-r*.4,0,t-r*.35,n-r*.4,r*.8);s.addColorStop(0,"rgba(255,255,255,0.4)"),s.addColorStop(.5,"rgba(255,255,255,0.12)"),s.addColorStop(1,"rgba(255,255,255,0)"),e.fillStyle=s,e.fillRect(t-r,n-r,r*2,r*2),e.strokeStyle="rgba(255,255,255,0.55)",e.lineWidth=1.8,e.beginPath(),e.arc(t,n,r*.92,Math.PI*1.15,Math.PI*1.5),e.stroke(),e.restore()}function ab(e,t){if(t.length!==0){e.save();for(let n=t.length-1;n>=0;n--){const r=t[n];if(r.x+=r.vx,r.y+=r.vy,r.vy+=.14,r.vx*=.985,r.vy*=.99,r.life--,r.life<=0){t.splice(n,1);continue}const s=r.life/r.maxLife;e.fillStyle=`rgba(248,250,255,${(.9*s).toFixed(3)})`,e.beginPath(),e.arc(r.x,r.y,r.r*(.5+.5*s),0,Math.PI*2),e.fill()}e.restore()}}function Rh(e,t){e.save();for(let n=t.length-1;n>=0;n--){const r=t[n];if(r.x+=r.vx,r.y+=r.vy,r.vy+=.18,r.life--,r.life<=0){t.splice(n,1);continue}const s=Math.min(1,r.life/20)*.8;e.fillStyle=`rgba(215,238,255,${s})`,e.beginPath(),e.arc(r.x,r.y,1.3,0,Math.PI*2),e.fill()}e.restore()}function ob(e,t,n,r,s,i){e.save(),e.beginPath(),e.arc(t,n,r*.99,0,Math.PI*2),e.clip();for(let a=s.length-1;a>=0;a--){const o=s[a];if(o.prog+=o.speed,o.life--,o.prog>Math.PI*1.05||o.life<=0){s.splice(a,1);continue}const u=7;for(let f=0;f<u;f++){const h=o.prog-o.len*(f/u),d=o.prog-o.len*((f+1)/u),m=Aa(t,n,r,h,o.theta),p=Aa(t,n,r,d,o.theta),g=(1-f/u)*.42;e.strokeStyle=`rgba(200,228,250,${g})`,e.lineWidth=o.thick*(1-f/u*.7),e.lineCap="round",e.beginPath(),e.moveTo(m.x,m.y),e.lineTo(p.x,p.y),e.stroke()}const l=Aa(t,n,r,o.prog,o.theta),c=e.createRadialGradient(l.x-1.2,l.y-1.2,0,l.x,l.y,o.thick*1.3);c.addColorStop(0,"rgba(255,255,255,0.85)"),c.addColorStop(.4,"rgba(180,215,240,0.5)"),c.addColorStop(1,"rgba(120,165,205,0.25)"),e.fillStyle=c,e.beginPath(),e.arc(l.x,l.y,o.thick*1.1,0,Math.PI*2),e.fill()}e.restore()}function ub(e,t,n,r){for(;dr.length<t.length;)dr.push([]);for(;Dn.length<t.length;)Dn.push(0);for(;Kr.length<t.length;)Kr.push(.3);for(;Gr.length<t.length;)Gr.push([]);for(;On.length<t.length;)On.push(0);for(let s=0;s<t.length;s++){const i=t[s];if(n.particles==="snow"){const a=i.snow!==void 0?i.snow:Math.min(1,(Kr[s]??.3)+8e-4);Kr[s]=a,ib(e,i.x,i.y,i.r,a)}else if(n.particles==="rain"){if(sb(e,i.x,i.y,i.r),Dn[s]=Dn[s]-1,Dn[s]<=0&&dr[s].length<3){const a=Math.random()<.5?-1:1;dr[s].push({theta:a*(.2+Math.random()*.3),prog:.1+Math.random()*.2,speed:.012+Math.random()*.012,len:.3+Math.random()*.3,thick:1.6+Math.random()*1.4,life:250+Math.random()*200}),Dn[s]=40+Math.random()*60}if(ob(e,i.x,i.y,i.r,dr[s]),On[s]=On[s]-1,On[s]<=0){const a=i.x+(Math.random()-.5)*i.r*1.2,o=a-i.x,u=i.y-Math.sqrt(Math.max(0,i.r*i.r-o*o)),l=4+Math.floor(Math.random()*3);for(let c=0;c<l;c++){const f=o<0?-1:1;Gr[s].push({x:a,y:u,vx:f*(.5+Math.random()*2)*(Math.random()<.5?-1:1),vy:-(1.5+Math.random()*2.5),life:18+Math.floor(Math.random()*14)})}On[s]=30+Math.floor(Math.random()*50)}Rh(e,Gr[s])}}}function lb(e,t,n,r,s){e.save(),e.strokeStyle=s?"rgba(205,224,244,0.42)":"rgba(210,224,238,0.3)",e.lineWidth=s?1:.7,e.lineCap="round";const i=s?.013:.007;for(const a of r){a.y+=a.v*i,a.y>1&&(a.y-=1,a.x=Math.random());const o=a.x*t,u=a.y*n;e.beginPath(),e.moveTo(o,u),e.lineTo(o,u+a.len),e.stroke()}e.restore()}function cb(e,t,n,r,s){e.save(),e.fillStyle="rgba(250,250,255,0.85)";for(const i of r){i.y+=i.v*.004;const a=(i.x+Math.sin(s*5e-4+i.phase)*.02)*t,o=i.y*n;i.y>1&&(i.y-=1),e.beginPath(),e.arc(a,o,i.r,0,Math.PI*2),e.fill()}e.restore()}function db(e,t,n,r,s){const i=e.createLinearGradient(0,n*.4,0,n),a=Vn(s.hor,[255,255,255],.3);i.addColorStop(0,Er(a,0)),i.addColorStop(1,Er(a,r)),e.fillStyle=i,e.fillRect(0,n*.4,t,n*.6)}let or=0,Ql=0;function fb(e,t,n,r,s){if(s>Ql&&(or=1,Ql=s+1400+Math.random()*2600),or*=.86,or<.02){or=0;return}if(e.fillStyle=`rgba(255,255,255,${or*.5})`,e.fillRect(0,0,t,n),or>.6){e.save(),e.strokeStyle="rgba(255,255,255,0.95)",e.lineWidth=2.2,e.shadowColor="rgba(220,230,255,0.9)",e.shadowBlur=22;let i=t*(.3+Math.random()*.4),a=0;for(e.beginPath(),e.moveTo(i,a);a<n*.6;)i+=(Math.random()-.5)*60,a+=24+Math.random()*30,e.lineTo(i,a);e.stroke(),e.restore()}}function hb(e,t,n,r){const s=e.getContext("2d");if(!s)return()=>{};const i=s,a=n;let o=0,u=0,l=1,c=Xl(1,1);const f=Qx();let h=[],d=[],m=0,p=0,g=!0;const y=performance.now(),v=window.matchMedia("(prefers-reduced-motion: reduce)").matches;function T(){const I=a.getBoundingClientRect();if(l=Math.min(window.devicePixelRatio||1,2),o=Math.max(1,I.width),u=Math.max(1,I.height),e.width=Math.floor(o*l),e.height=Math.floor(u*l),e.style.width=o+"px",e.style.height=u+"px",i.setTransform(l,0,0,l,0,0),c=Xl(o,u),r.particles==="rain"&&h.length===0){const S=r.weather==="storm",M=S?140:70;for(let N=0;N<M;N++)h.push({x:Math.random(),y:Math.random(),len:S?12+Math.random()*14:6+Math.random()*8,v:S?.9+Math.random()*.4:.5+Math.random()*.3})}if(r.particles==="snow"&&d.length===0)for(let S=0;S<120;S++)d.push({x:Math.random(),y:Math.random(),r:.8+Math.random()*1.6,v:.5+Math.random()*.8,phase:Math.random()*Math.PI*2})}function C(){const I=t.scrollHeight-t.clientHeight;m=I>0?Vs(t.scrollTop/I,0,1):0}function E(I){if(!g)return;const S=m,M=v?0:(I-y)/1e3,N=Gx(S,r.sky);Zx(i,N,o,u),Jx(i,S,c,o,u,M),tb(i,Xx(S,o,u,.92,.08)),eb(i,Kx(S,o,u,.16,.88),r.sunTint),rb(i,S,f,o,u,I,r.cloudCover,N,r.weather==="storm"),r.particles==="rain"&&lb(i,o,u,h,r.weather==="storm"),r.particles==="snow"&&cb(i,o,u,d,I),r.fogAlpha>0&&db(i,o,u,r.fogAlpha,N),r.lightning&&fb(i,o,u,!0,I),v||(p=requestAnimationFrame(E))}const k=()=>C(),_=new ResizeObserver(()=>{T(),C()});_.observe(a),T(),C();let A;if(v){let I=!1;A=()=>{C(),I||(I=!0,requestAnimationFrame(()=>{I=!1,E(performance.now())}))},t.addEventListener("scroll",A,{passive:!0}),E(performance.now())}else A=k,t.addEventListener("scroll",A,{passive:!0}),p=requestAnimationFrame(E);return()=>{g=!1,cancelAnimationFrame(p),_.disconnect(),t.removeEventListener("scroll",A)}}function mb(e,t,n,r,s,i){const a=()=>{dr.length=0,Kr.length=0,Dn.length=0,Gr.length=0,On.length=0,qi.length=0,Br.length=0;const v=e.getContext("2d");v&&v.clearRect(0,0,e.width,e.height)};if(a(),window.matchMedia("(prefers-reduced-motion: reduce)").matches)return()=>{};if(n.particles!=="rain"&&n.particles!=="snow")return()=>{};const u=e.getContext("2d");if(!u)return()=>{};const l=u;let c=0,f=0,h=1,d=0,m=!0;function p(){const v=t.getBoundingClientRect();h=Math.min(window.devicePixelRatio||1,2),c=Math.max(1,v.width),f=Math.max(1,v.height),e.width=Math.floor(c*h),e.height=Math.floor(f*h),e.style.width=c+"px",e.style.height=f+"px",l.setTransform(h,0,0,h,0,0)}function g(v){if(!m)return;l.clearRect(0,0,c,f);const T=r();if(ub(l,T,n),s){for(const C of s()){const E=3+Math.min(5,Math.floor(C.speed/3));for(let k=0;k<E;k++)qi.push({x:C.x,y:C.y,vx:(Math.random()-.5)*3.2,vy:-(1.5+Math.random()*2.5),life:16+Math.floor(Math.random()*12)})}qi.length>0&&Rh(l,qi)}if(i){for(const C of i()){const E=1+Math.min(2,Math.round(C.amount*40));for(let k=0;k<E;k++){const _=55+Math.floor(Math.random()*40);Br.push({x:C.x+(Math.random()-.5)*8,y:C.y+(Math.random()-.5)*6,vx:C.vx*.6+(Math.random()-.5)*.8,vy:C.vy*.6-Math.random()*.5,life:_,maxLife:_,r:1.2+Math.random()*2.2})}}for(;Br.length>240;)Br.shift();ab(l,Br)}d=requestAnimationFrame(g)}const y=new ResizeObserver(p);return y.observe(t),p(),d=requestAnimationFrame(g),()=>{m=!1,cancelAnimationFrame(d),y.disconnect(),a()}}const pb=w.lazy(()=>Se(()=>import("./CourseSearchPanel-Blz5uOZo.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.CourseSearchPanel})));function gb(e){const t=Ge(),[n,r]=w.useState("import"),[s,i]=w.useState("study"),a=w.useRef(null),o=w.useRef(null),u=Math.round(e.overallMastery*100),c=!bu(),f=w.useRef([]),h=w.useRef(N=>{f.current.push(...N),f.current.length>64&&f.current.splice(0,f.current.length-64)}).current,d=w.useRef([]),m=w.useRef(new Map),p=w.useRef(N=>{d.current.push(...N),d.current.length>96&&d.current.splice(0,d.current.length-96)}).current,g=e.sections.filter(N=>(N.world??"study")===s),y=e.sections.some(N=>N.world==="practice"),[v,T]=w.useState(null);w.useEffect(()=>{T(Yx(e.courseId))},[e.courseId]);const C=v?Ih[v]??null:null;w.useEffect(()=>(Cl({nav:a.current,visible:n==="map",weather:(C==null?void 0:C.weather)??"clear"}),()=>{Cl({visible:!1,nav:null})}),[n,C,a]);const[E,k]=w.useState(!1);w.useEffect(()=>{if(!e.selectedNodeId)return;const N=o.current;if(!N)return;const j=N.querySelector(`[data-node-id="${CSS.escape(e.selectedNodeId)}"]`);if(!j)return;const P=N.getBoundingClientRect(),L=j.getBoundingClientRect();(L.top<P.top+60||L.bottom>P.bottom-60)&&j.scrollIntoView({behavior:"smooth",block:"center"})},[e.selectedNodeId]);const _=w.useRef(null);w.useEffect(()=>{k(!1),e.courseId&&(_.current===null||_.current!==e.courseId)&&(r("map"),i("study")),!e.courseId&&_.current!==null&&(r("import"),i("study")),_.current=e.courseId},[e.courseId]);const[A,I]=w.useState(null),S=w.useRef({}),M=w.useRef(null);return w.useEffect(()=>{var L,F;const N=S.current,j={};let P=null;for(const V of e.tree){const B=((L=e.progressMap[V.id])==null?void 0:L.status)??"locked";j[V.id]=B,N[V.id]==="locked"&&B!=="locked"&&!P&&(P=V.id)}if(P&&Object.keys(N).length>0){const V=(F=a.current)==null?void 0:F.querySelector(`[data-testid="map-node-${P.slice(0,8)}"], [data-testid="exam-node-${P.slice(0,8)}"]`),B=V==null?void 0:V.getBoundingClientRect(),q=!!B&&B.width>0&&B.left>=0&&B.right<=window.innerWidth&&B.top>=0;is("unlock",q?{origin:{x:B.left+B.width/2,y:B.top+4}}:void 0)}S.current=j},[e.tree,e.progressMap]),x.jsxs("nav",{ref:a,className:`map-rail-scope relative h-full flex flex-col bg-surface-rail shrink-0 overflow-hidden ${e.fullWidth?"w-full":"w-[300px]"}`,"data-testid":"map-rail",children:[C&&x.jsxs(x.Fragment,{children:[x.jsx(bb,{scrollRef:o,navRef:a,preset:C}),x.jsx(yb,{scrollRef:o,navRef:a,preset:C,getImpacts:()=>f.current.splice(0),getFlakes:()=>d.current.splice(0),orbSnowRef:m})]}),x.jsxs("div",{className:"absolute top-0 left-0 right-0 z-40 px-2 pt-2 pb-2 pointer-events-none [&_button]:pointer-events-auto","data-testid":"map-rail-topbar",children:[x.jsxs("div",{className:"flex p-1 rounded-lg gap-1 mb-2",style:{background:"rgb(var(--surface-rail-rgb) / 0.55)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},children:[x.jsxs("button",{onClick:()=>r("map"),"data-testid":"map-tab-map",className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n==="map"?"bg-brand/20 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(dh,{className:"w-3 h-3"})," ",t("map.tab.map")]}),x.jsxs("button",{onClick:()=>r("import"),"data-testid":"map-tab-import",className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n==="import"?"bg-brand/20 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(Us,{className:"w-3 h-3"})," ",t("map.tab.import")]})]}),n==="map"&&x.jsxs("div",{className:"px-3 py-2 rounded-lg pointer-events-auto",style:{background:"rgb(var(--surface-rail-rgb) / 0.55)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},children:[x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("h2",{className:"text-body font-extrabold text-white truncate flex-1","data-tooltip":e.courseTitle??"",children:e.courseTitle??t("map.course.none")}),e.availableLanguages.length>0&&x.jsx(Sb,{available:e.availableLanguages,current:e.currentLocale,onChange:e.onLocaleChange}),e.courseId&&x.jsx("button",{onClick:N=>{const j=N.currentTarget.getBoundingClientRect();I({id:e.courseId,title:e.courseTitle??"",rect:j})},"data-testid":"course-delete-btn","aria-label":t("import.delete.current"),"data-tooltip":t("import.delete.current"),className:"shrink-0 flex items-center justify-center w-5 h-5 rounded-md text-white/40 hover:text-warning hover:bg-white/10 transition-colors",children:x.jsx(ph,{className:"w-3 h-3"})})]}),x.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[x.jsx("div",{className:"flex-1 h-2.5 bg-black/40 rounded-full overflow-hidden ring-1 ring-white/10",children:x.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${u>=100?"bg-gold":"bg-brand"}`,style:{width:`${Math.max(3,u)}%`}})}),x.jsxs("span",{className:"text-label font-extrabold tabular-nums text-white drop-shadow-[0_1px_3px_rgba(0,0,0,0.6)]",children:[u,"%"]})]}),x.jsxs("div",{className:"flex items-center justify-end gap-1.5 mt-1.5 text-caption",children:[x.jsxs("button",{onClick:()=>k(!0),"data-testid":"map-search-btn",className:"flex items-center gap-1 px-1.5 py-0.5 rounded-full bg-white/5 ring-1 ring-white/10 hover:bg-white/10 transition-colors",children:[x.jsx(ux,{className:"w-3 h-3 text-white/50"}),x.jsx("span",{className:"font-bold text-white/60",children:t("map.search.label")})]}),x.jsxs("button",{onClick:e.onOpenReview,className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full transition-colors ${e.dueCount>0?"bg-review/20 ring-1 ring-review/30 hover:bg-review/30":"bg-white/5 ring-1 ring-white/10 hover:bg-white/10"}`,"data-testid":"map-review-badge",children:[x.jsx(vn,{className:`w-3 h-3 ${e.dueCount>0?"text-review":"text-white/50"}`}),x.jsx("span",{className:`font-bold ${e.dueCount>0?"text-review":"text-white/60"}`,children:t("map.review.label")}),e.dueCount>0&&x.jsx("span",{className:"font-extrabold text-review tabular-nums",children:e.dueCount})]})]}),y&&x.jsxs("div",{className:"flex gap-1 mt-1.5 p-0.5 rounded-lg bg-black/30",children:[x.jsxs("button",{onClick:()=>i("study"),"data-testid":"world-tab-study",className:`flex-1 flex items-center justify-center gap-1 py-1 rounded-md text-caption font-bold transition-colors ${s==="study"?"bg-brand/30 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(vn,{className:"w-3 h-3"})," ",t("map.world.study")]}),x.jsxs("button",{onClick:()=>i("practice"),"data-testid":"world-tab-practice",className:`flex-1 flex items-center justify-center gap-1 py-1 rounded-md text-caption font-bold transition-colors ${s==="practice"?"bg-accent/30 text-accent":"text-white/50 hover:text-white/80"}`,children:[x.jsx(xh,{className:"w-3 h-3"})," ",t("map.world.practice")]})]})]})]}),x.jsx("div",{className:"absolute inset-0 overflow-hidden z-10",children:x.jsxs("div",{className:"flex h-full transition-transform duration-300",style:{transform:n==="map"?"translateX(0)":"translateX(-50%)",width:"200%"},children:[x.jsx("div",{className:"w-1/2 h-full relative",children:x.jsx("div",{ref:o,className:"map-path h-full overflow-y-auto overflow-x-hidden px-2 pt-48 pb-4","data-testid":"map-path",onPointerDown:N=>{M.current={x:N.clientX,y:N.clientY}},onClick:N=>{const j=M.current;M.current=null,!(!j||Math.hypot(N.clientX-j.x,N.clientY-j.y)>6)&&(N.target.closest("button, a, input, textarea, select")||Wg(N.clientX,N.clientY))},children:x.jsxs("div",{className:`map-sky-content ${C?`env-${C.season} env-${C.weather}`:""}`,children:[e.streaming&&x.jsxs("div",{className:"mb-3 mx-1 px-3 py-2 rounded-xl bg-brand/10 border border-brand/30 flex items-center gap-2 text-label text-brand font-medium backdrop-blur-sm","data-testid":"streaming-notice",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),t("map.streaming.notice")]}),e.sections.length===0?e.courseTitle?x.jsxs("div",{className:"text-center text-label text-white/60 mt-8 px-4 flex items-center justify-center gap-2",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),t("map.generating")]}):x.jsxs("button",{onClick:()=>r("import"),className:"block w-full mt-8 mx-auto p-4 rounded-2xl border-2 border-dashed border-brand/40 hover:border-brand hover:bg-brand/5 transition-all text-center group","data-testid":"map-empty-cta",children:[x.jsx("div",{className:"text-3xl mb-2 group-hover:scale-110 transition-transform",children:"🗺️"}),x.jsx("div",{className:"text-body font-bold text-white/90 mb-1",children:t("map.empty.cta.title")}),x.jsx("div",{className:"text-label text-white/60 leading-relaxed",children:t("map.empty.cta.desc")}),x.jsx("div",{className:"mt-2 text-caption text-brand font-bold",children:t("map.empty.cta.btn")})]}):g.length===0?x.jsx("div",{className:"text-center text-label text-white/60 mt-8 px-4",children:t(s==="practice"?"map.empty.practice":"map.generating")}):x.jsx("div",{className:"space-y-6 pt-2",children:g.map((N,j)=>x.jsx(Eb,{section:N,sectionIndex:j,tree:e.tree,progressMap:e.progressMap,selectedNodeId:e.selectedNodeId,dueNodeIds:e.dueNodeIds,streamingNodeIds:e.streamingNodeIds,onJumpNode:e.onJumpNode,physics:c,physicsWeather:(C==null?void 0:C.weather)??"clear",scrollRef:o,navRef:a,onImpacts:h,onFlakes:p,orbSnowRef:m},N.id))})]})})}),x.jsx("div",{className:"w-1/2 h-full overflow-y-auto px-3 pt-20 pb-3 space-y-2.5",children:x.jsx(xb,{courses:e.courses,selectedCourseId:e.courseId,onSelectCourse:N=>{e.onSelectCourse(N),r("map")},onDeleteCourse:(N,j,P)=>I({id:N,title:j,rect:P}),onCoursesChanged:e.onCoursesChanged})})]})}),E&&e.courseId&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(pb,{sections:e.sections,tree:e.tree,progressMap:e.progressMap,selectedNodeId:e.selectedNodeId,onJump:N=>{i(N.world??"study"),k(!1),bo(null,null,N.id),e.onJumpNode(N.id)},onClose:()=>k(!1)})}),A&&x.jsx(kh,{anchorRect:A.rect,message:`${A.title} — ${t("import.delete.confirm")}`,danger:!0,confirmLabel:t("import.delete"),testid:"course-delete-confirm",onConfirm:()=>{e.onDeleteCourse(A.id),I(null)},onCancel:()=>I(null)})]})}function xb({courses:e,selectedCourseId:t,onSelectCourse:n,onDeleteCourse:r,onCoursesChanged:s}){const i=Ge(),[a,o]=w.useState("url"),[u,l]=w.useState(!1),[c,f]=w.useState(""),[h,d]=w.useState(""),m=w.useRef(null),p=w.useRef(null),g=w.useRef(null),[y,v]=w.useState(""),[T,C]=w.useState(""),[E,k]=w.useState(!1),[_,A]=w.useState(null),[I,S]=w.useState(null),[M,N]=w.useState(null),[j,P]=w.useState(null),[L,F]=w.useState([]),[,V]=w.useState(0),B=w.useRef(null);w.useEffect(()=>{const re=le.on("import:progress",xe=>{F(ve=>{const Le=/\d+\/\d+/.test(xe),Be=ve[ve.length-1];if(Le&&Be&&Be.status==="working"){const Oe=[...ve];return Oe[Oe.length-1]={...Be,msg:xe},Oe}const Ee=ve.map(Oe=>Oe.status==="working"?{...Oe,status:"done"}:Oe);return Ee.push({msg:xe,status:"working",ts:Date.now()}),Ee})}),ne=setInterval(()=>V(xe=>xe+1),1e3);return()=>{re(),clearInterval(ne)}},[]),w.useEffect(()=>le.on("import:done",ne=>{k(!1),Ot(!1),ne.cancelled||Kg(ne.ok),N(ne.ok?null:ne.planId??null),ne.ok?(S(`${i("import.success.folder")}: ${ne.title??""}${ne.reused?`(${i("import.success.reused")})`:""}`),P(ne.courseId?{courseId:ne.courseId,packable:ne.packable??!1}:null),s()):ne.cancelled?(F([]),A(null),S(i("import.cancelled"))):A(ne.error??"导入失败")}),[s,i]),w.useEffect(()=>{const re=B.current;re&&(re.scrollTop=re.scrollHeight)},[L]);const q=async()=>{if(!(!c.trim()||E)){A(null),S(null),F([]);try{await le.importUrl(c.trim()),k(!0),Ot(!0)}catch(re){A(re instanceof Error?re.message:String(re))}}},R=async()=>{if(!(!y.trim()||E)){A(null),S(null),F([]);try{await le.importText({name:T.trim()||void 0,text:y.trim()}),k(!0),Ot(!0)}catch(re){A(re instanceof Error?re.message:String(re))}}},$=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=p.current)==null||ne.click();return}await le.importEpub().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},K=async re=>{if(!(!re||E)){A(null),S(null),F([]);try{const ne=new Uint8Array(await re.arrayBuffer());let xe="";for(let Le=0;Le<ne.length;Le+=32768)xe+=String.fromCharCode(...ne.subarray(Le,Le+32768));await le.importEpub({fileName:re.name,contentBase64:btoa(xe)})&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},D=async()=>{if(E)return;if(A(null),S(null),F([]),!on){const ne=h.trim();if(!ne){A(i("import.folder.pathRequired"));return}try{await le.importLocalFolder(ne)&&k(!0),Ot(!0)}catch(xe){A(xe instanceof Error?xe.message:String(xe))}return}await le.importLocalFolder()&&(k(!0),Ot(!0))},Z=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=m.current)==null||ne.click();return}await le.importPack().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},oe=async re=>{if(!(!re||E)){A(null),S(null),F([]);try{const ne=await re.text();await le.importPack({fileName:re.name,content:ne})&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},z=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=g.current)==null||ne.click();return}await le.importAudio().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},J=async re=>{if(!(!re||re.length===0||E)){A(null),S(null),F([]);try{const ne=[];for(const ve of Array.from(re)){const Le=new Uint8Array(await ve.arrayBuffer());let Be="";for(let Ee=0;Ee<Le.length;Ee+=32768)Be+=String.fromCharCode(...Le.subarray(Ee,Ee+32768));ne.push({fileName:ve.name,contentBase64:btoa(Be)})}await le.importAudio(ne)&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},X=async re=>{if(!E){A(null),F([]);try{await le.importResume(re),k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},ce=async re=>{try{const ne=await le.exportPack(re);ne!=null&&ne.content&&ne.fileName?(he(ne.fileName,ne.content),S(i("import.pack.exported",{path:ne.fileName}))):ne!=null&&ne.path&&S(i("import.pack.exported",{path:ne.path}))}catch(ne){A(ne instanceof Error?ne.message:String(ne))}},he=(re,ne)=>{const xe=new Blob([ne],{type:"application/json"}),ve=URL.createObjectURL(xe),Le=document.createElement("a");Le.href=ve,Le.download=re,Le.click(),setTimeout(()=>URL.revokeObjectURL(ve),5e3)};return x.jsxs(x.Fragment,{children:[e.length===0?x.jsxs("div",{className:"text-center py-10",children:[x.jsx("div",{className:"text-3xl mb-2 opacity-30",children:"📚"}),x.jsx("p",{className:"text-label text-white/45 leading-relaxed",children:i("import.empty")})]}):x.jsx("div",{className:"space-y-2","data-testid":"course-list",children:e.map(re=>{const ne=re.id===t;return x.jsxs("div",{"data-testid":"course-row",className:`relative rounded-xl transition-all duration-150 group ${ne?"bg-brand/12 ring-1 ring-brand/40":"bg-white/5 hover:bg-white/10 hover:-translate-y-0.5"}`,children:[x.jsx("button",{onClick:()=>n(re.id),className:"w-full text-left p-3",children:x.jsxs("div",{className:"flex items-start justify-between gap-2",children:[x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:`text-body font-bold truncate ${ne?"text-brand":"text-white/90"}`,children:re.title}),x.jsx("div",{className:"text-caption text-white/40 truncate mt-0.5",children:re.repoName})]}),ne&&x.jsx("span",{className:"shrink-0 w-5 h-5 rounded-full bg-brand flex items-center justify-center",children:x.jsx(Tn,{className:"w-3 h-3 text-white"})})]})}),x.jsxs("div",{className:"absolute bottom-1.5 right-2 flex items-center gap-2.5 opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 focus-within:opacity-100 transition-opacity",children:[x.jsxs("button",{onClick:xe=>{xe.stopPropagation(),A(null),S(null),le.exportPack(re.id).then(ve=>{ve!=null&&ve.content&&ve.fileName?(he(ve.fileName,ve.content),S(i("import.pack.exported",{path:ve.fileName}))):ve!=null&&ve.path&&S(i("import.pack.exported",{path:ve.path}))}).catch(ve=>{A(ve instanceof Error?ve.message:String(ve))})},"data-testid":"course-row-export",className:"text-caption text-white/40 hover:text-brand flex items-center gap-0.5",children:[x.jsx(jl,{className:"w-2.5 h-2.5"})," ",i("import.export")]}),x.jsxs("button",{onClick:xe=>{xe.stopPropagation();const ve=xe.currentTarget.getBoundingClientRect();r(re.id,re.title,ve)},"data-testid":"course-row-delete",className:"text-caption text-white/40 hover:text-warning flex items-center gap-0.5",children:[x.jsx(ph,{className:"w-2.5 h-2.5"})," ",i("import.delete")]})]})]},re.id)})}),x.jsxs("div",{className:e.length>0?"mt-6":"",children:[x.jsxs("button",{onClick:()=>l(!u),className:`w-full flex items-center justify-center gap-1.5 py-3 rounded-xl border-2 border-dashed transition-all text-body font-bold ${u?"border-brand/40 bg-brand/8 text-brand":"border-white/20 hover:border-brand/50 hover:bg-brand/8 text-white/70 hover:text-brand"}`,children:[x.jsx(hh,{className:`w-4 h-4 transition-transform ${u?"rotate-45":""}`})," ",i("import.cta")]}),u&&x.jsxs("div",{className:"mt-3 space-y-3",children:[E?x.jsxs("div",{className:"rounded-xl bg-black/30 border border-brand/30 p-4","data-testid":"import-progress",children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2.5",children:[x.jsx("span",{className:"inline-block w-4 h-4 border-2 border-brand border-t-transparent rounded-full animate-spin shrink-0"}),x.jsx("span",{className:"text-body font-bold text-white/90",children:i("import.progress.title")}),x.jsx("button",{onClick:()=>{le.importCancel()},"data-testid":"import-cancel-btn",className:"ml-auto text-caption text-white/50 hover:text-warning transition-colors",children:i("import.progress.cancel")})]}),x.jsx("div",{className:"text-caption text-white/40 mb-2.5",children:i("import.progress.note")}),(a==="url"?c.trim():a==="markdown"&&T.trim())?x.jsx("div",{className:"text-caption text-white/40 font-mono truncate mb-2.5",children:a==="url"?c.trim():T.trim()}):null,x.jsx("div",{ref:B,className:"space-y-1.5 max-h-[40vh] overflow-y-auto pr-1",children:L.length===0?x.jsx("div",{className:"text-caption text-white/50 py-1",children:i("import.progress.starting")}):L.map((re,ne)=>x.jsxs("div",{className:"flex items-start gap-1.5 text-caption",children:[re.status==="done"?x.jsx(Tn,{className:"w-3 h-3 text-brand shrink-0 mt-px"}):x.jsx("span",{className:"inline-block w-2.5 h-2.5 border-2 border-brand border-t-transparent rounded-full animate-spin shrink-0 mt-px"}),x.jsxs("span",{className:re.status==="done"?"text-white/40":"text-white/90",children:[re.msg,re.status==="working"&&x.jsxs("span",{className:"text-white/35 ml-1",children:["(",i("import.progress.elapsed",{s:Math.floor((Date.now()-re.ts)/1e3)}),")"]})]})]},ne))})]}):x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"@container flex flex-wrap gap-1 p-1 bg-white/5 rounded-lg",children:[{k:"url",label:i("import.tab.url"),icon:Q1},{k:"markdown",label:i("import.tab.md"),icon:Us},{k:"folder",label:i("import.tab.folder"),icon:z1},{k:"epub",label:i("import.tab.epub"),icon:vn},{k:"audio",label:i("import.tab.audio"),icon:ss},{k:"pack",label:i("import.tab.pack"),icon:jl}].map(({k:re,label:ne,icon:xe})=>x.jsxs("button",{onClick:()=>o(re),className:`min-w-[72px] flex-1 flex items-center justify-center gap-0.5 py-1.5 px-0.5 rounded-md font-bold transition-colors ${a===re?"bg-brand/15 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(xe,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"whitespace-nowrap",style:{fontSize:"clamp(0.75rem, 4cqi, 0.875rem)"},children:ne})]},re))}),a==="url"?x.jsxs("section",{className:"space-y-2","data-testid":"import-url-section",children:[x.jsx("input",{type:"text",value:c,onChange:re=>f(re.target.value),placeholder:i("import.url.placeholder"),"data-testid":"repo-url-input",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("p",{className:"text-caption text-white/45 leading-relaxed",children:i("import.url.desc")}),x.jsx("button",{onClick:q,disabled:!c.trim()||E,"data-testid":"import-url-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.url")})]}):a==="markdown"?x.jsxs("section",{className:"space-y-2","data-testid":"import-md-section",children:[x.jsx("input",{type:"text",value:T,onChange:re=>C(re.target.value),placeholder:i("import.placeholder.name"),"data-testid":"md-name-input",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("textarea",{value:y,onChange:re=>v(re.target.value),placeholder:i("import.placeholder.md"),"data-testid":"md-text-input",rows:4,className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors resize-none"}),x.jsx("button",{onClick:R,disabled:!y.trim()||E,"data-testid":"import-md-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.md")})]}):a==="folder"?x.jsxs("section",{className:"space-y-2","data-testid":"import-folder-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.folder.desc")}),!on&&x.jsx("input",{type:"text",value:h,onChange:re=>d(re.target.value),placeholder:i("import.folder.pathPlaceholder"),"data-testid":"import-folder-path",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("button",{onClick:D,disabled:E||!on&&!h.trim(),"data-testid":"import-folder-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.folder")})]}):a==="epub"?x.jsxs("section",{className:"space-y-2","data-testid":"import-epub-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.epub.desc")}),!on&&x.jsx("input",{ref:p,type:"file",accept:".epub,application/epub+zip",className:"hidden","data-testid":"import-epub-file",onChange:re=>{var ne;K((ne=re.target.files)==null?void 0:ne[0]),re.currentTarget.value=""}}),x.jsx("button",{onClick:$,disabled:E,"data-testid":"import-epub-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.epub")})]}):a==="audio"?x.jsxs("section",{className:"space-y-2","data-testid":"import-audio-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.audio.desc")}),!on&&x.jsx("input",{ref:g,type:"file",multiple:!0,accept:".wav,.mp3,.m4a,.flac,.aac,.ogg,.opus,audio/*",className:"hidden","data-testid":"import-audio-file",onChange:re=>{J(re.target.files),re.currentTarget.value=""}}),x.jsx("button",{onClick:z,disabled:E,"data-testid":"import-audio-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.audio")})]}):x.jsxs("section",{className:"space-y-2","data-testid":"import-pack-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.pack.desc")}),!on&&x.jsx("input",{ref:m,type:"file",accept:".json,application/json",className:"hidden","data-testid":"import-pack-file",onChange:re=>{var ne;oe((ne=re.target.files)==null?void 0:ne[0]),re.currentTarget.value=""}}),x.jsx("button",{onClick:Z,disabled:E,"data-testid":"import-pack-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.pack")})]})]}),_&&x.jsxs("div",{className:"border border-warning/40 text-warning-light text-label rounded-lg p-2 whitespace-pre-wrap","data-testid":"import-error",children:[_,M&&x.jsx("button",{onClick:()=>void X(M),disabled:E,"data-testid":"import-resume-btn",className:"block mt-1.5 text-label font-bold text-warning-light hover:text-warning underline underline-offset-2 disabled:opacity-40",children:i("import.error.resume")})]}),I&&x.jsxs("div",{className:"border border-brand/30 text-brand text-label rounded-lg p-2","data-testid":"import-success",children:[x.jsx(Tn,{className:"inline-block w-3.5 h-3.5 mr-1 align-[-3px]"}),I,(j==null?void 0:j.packable)&&x.jsx("button",{onClick:()=>void ce(j.courseId),disabled:E,"data-testid":"import-export-pack-btn",className:"block mt-1.5 text-label font-bold hover:underline underline-offset-2 disabled:opacity-40",children:i("import.pack.export")})]})]})]})]})}function bb({scrollRef:e,navRef:t,preset:n}){const r=w.useRef(null);return w.useEffect(()=>{const s=r.current,i=e.current,a=t.current;return!s||!i||!a?void 0:hb(s,i,a,n)},[e,t,n]),x.jsx("canvas",{ref:r,className:"map-sky-canvas","aria-hidden":"true"})}function yb({scrollRef:e,navRef:t,preset:n,getImpacts:r,getFlakes:s,orbSnowRef:i}){const a=w.useRef(null);return w.useEffect(()=>{const o=a.current,u=t.current,l=e.current;if(!o||!u||!l)return;let c=null,f=null;const h=()=>{c=null,f=null},d=new MutationObserver(h);d.observe(l,{childList:!0,subtree:!0}),window.addEventListener("resize",h);const p=mb(o,u,n,()=>{var v,T;c||(c=Array.from(l.querySelectorAll(".lesson-bubble")));const g=f??u.getBoundingClientRect();f=g;const y=[];for(const C of c){const E=C.getBoundingClientRect();if(E.bottom<g.top||E.top>g.bottom)continue;const k=(v=C.closest("[data-node-id]"))==null?void 0:v.getAttribute("data-node-id"),_=k?(T=i==null?void 0:i.current)==null?void 0:T.get(k):void 0;y.push({x:E.left-g.left+E.width/2,y:E.top-g.top+E.height/2,r:E.width/2,..._!==void 0?{snow:_}:{}})}return y},r,s);return()=>{p(),d.disconnect(),window.removeEventListener("resize",h)}},[e,t,n,r,s]),x.jsx("canvas",{ref:a,className:"map-orb-weather-canvas","aria-hidden":"true"})}function Eb({section:e,sectionIndex:t,tree:n,progressMap:r,selectedNodeId:s,dueNodeIds:i,streamingNodeIds:a,onJumpNode:o,physics:u,physicsWeather:l,scrollRef:c,navRef:f,onImpacts:h,onFlakes:d,orbSnowRef:m}){const p=n.filter(z=>z.parentId===e.id).sort((z,J)=>z.orderIdx-J.orderIdx),g=p.filter(z=>z.type==="lesson"),y=g.length>0&&g.every(z=>{var J;return(((J=r[z.id])==null?void 0:J.mastery)??0)>=yx}),v=w.useRef(null),[T,C]=w.useState(268);w.useEffect(()=>{if(!v.current)return;const z=()=>{var ce;const X=((ce=v.current)==null?void 0:ce.clientWidth)??268;C(X>0?X:268)};z();const J=new ResizeObserver(z);return J.observe(v.current),()=>J.disconnect()},[]);const E=_x(p.length,T,e.id),k=E.height,_=110,A=76,I=w.useRef(null),S=w.useRef(new Map),M=w.useRef(0),N=w.useRef(null),j=w.useRef(0),P=p.map(z=>z.id).join(","),L=p.map(z=>{var J;return(z.type==="exam"?!y:(((J=r[z.id])==null?void 0:J.status)??"locked")==="locked")?1:0}).join("");w.useEffect(()=>{var Me,Xe;if(!u||p.length===0||T<=0)return;const z=v.current,J=c.current;if(!z||!J)return;let X;const ce=p[p.length-1];if((ce==null?void 0:ce.type)==="exam"){const G=(Xe=(Me=z.closest("section"))==null?void 0:Me.nextElementSibling)==null?void 0:Xe.querySelector(".map-signpost");G&&(X={x:Ui(`${e.id}:next`,T),y:G.getBoundingClientRect().top-z.getBoundingClientRect().top})}const he=qx({nodes:E.nodes.map((G,se)=>{const pe=p[se];return{id:pe.id,x:G.x,y:G.y,isExam:pe.type==="exam",locked:F(pe),spawn:(()=>{const de=S.current.get(pe.id);return de?$x(de,M.current,T):void 0})()}}),width:T,height:E.height+40,weather:l,anchorKnotX:Ui(`${e.id}:knot`,T),nextKnot:X});I.current=he,Yg(e.id,he,z);const re=z.querySelector("[data-next-knot]");re&&(he.nextKnot?(re.setAttribute("cx",String(he.nextKnot.x)),re.setAttribute("cy",String(he.nextKnot.y))):re.setAttribute("opacity","0"));const ne=z.querySelector("[data-exam-rope]");ne&&!he.nextKnot&&ne.setAttribute("opacity","0");const xe=new Map;for(const G of z.querySelectorAll("[data-node-id]"))G.dataset.nodeId&&xe.set(G.dataset.nodeId,G);const ve=Array.from(z.querySelectorAll("[data-rope]")),Le=Array.from(z.querySelectorAll("[data-pulse]")),Be=Array.from(z.querySelectorAll("[data-field]"));let Ee=!0;const Oe=new IntersectionObserver(G=>{for(const se of G)Ee=se.isIntersecting},{root:J,rootMargin:"200px 0px 200px 0px"});Oe.observe(z);const te=520,Ie=[];let be=0,ze=performance.now();const rt=G=>{var _e;be=requestAnimationFrame(rt);const se=Math.min(50,G-ze);if(ze=G,!Ee)return;he.step(se);for(const Te of he.balls){const Pe=xe.get(Te.nodeId);Pe&&(Pe.style.transform=Fx(Te.body.position.x-Te.layoutX,Te.body.position.y-Te.layoutY,Te.squash,Te.squashAngle)),Te.squash=Ox(Te.squash,se),(_e=m.current)==null||_e.set(Te.nodeId,Te.snow)}const pe=Te=>{if(Te==="__anchor")return he.anchor;if(Te==="__next")return he.nextKnot??he.anchor;const Pe=he.ball(Te);if(Pe)return{x:Pe.body.position.x,y:Pe.body.position.y+Bt*cn};const Ve=p.findIndex(ye=>ye.id===Te),We=Ve>=0?E.nodes[Ve]:void 0;return We?{x:We.x,y:We.y+Bt*cn}:{x:0,y:0}};for(let Te=0;Te<he.links.length&&Te<ve.length;Te++){const Pe=he.links[Te],Ve=[pe(Pe.from)];for(const We of Pe.particles)Ve.push({x:We.position.x,y:We.position.y});Ve.push(pe(Pe.to)),ve[Te].setAttribute("d",Dx(Ve))}for(let Te=0;Te<he.balls.length&&Te<Be.length;Te++){const Pe=he.balls[Te],Ve=Be[Te];Pe.field>.03?(Ve.setAttribute("cx",String(Pe.body.position.x)),Ve.setAttribute("cy",String(Pe.body.position.y)),Ve.setAttribute("r",String(Bt+4+Pe.field*5)),Ve.setAttribute("opacity",String((.3*Pe.field).toFixed(3)))):Ve.setAttribute("opacity","0")}const de=he.drainImpacts();for(const Te of de)Ie.push({x:Te.x,y:Te.y,t0:G,s:Math.min(1,Te.speed/14)});for(let Te=Ie.length-1;Te>=0;Te--)G-Ie[Te].t0>te&&Ie.splice(Te,1);for(let Te=0;Te<Le.length;Te++){const Pe=Ie[Te],Ve=Le[Te];if(!Pe){Ve.setAttribute("opacity","0");continue}const We=(G-Pe.t0)/te;Ve.setAttribute("cx",String(Pe.x)),Ve.setAttribute("cy",String(Pe.y)),Ve.setAttribute("r",String(6+We*(14+Pe.s*14))),Ve.setAttribute("opacity",String(.55*(1-We))),Ve.setAttribute("stroke-width",String(2+Pe.s*1.5))}const Ne=he.drainFlakes();if((de.length>0||Ne.length>0)&&f.current){const Te=z.getBoundingClientRect(),Pe=f.current.getBoundingClientRect(),Ve=We=>({x:We.x+Te.left-Pe.left,y:We.y+Te.top-Pe.top});de.length>0&&h(de.map(We=>({...Ve(We),speed:We.speed}))),Ne.length>0&&d(Ne.map(We=>({...Ve(We),vx:We.vx,vy:We.vy,amount:We.amount})))}};return be=requestAnimationFrame(rt),()=>{cancelAnimationFrame(be),Oe.disconnect();for(const G of he.balls)S.current.set(G.nodeId,{x:G.body.position.x,y:G.body.position.y,vx:G.body.velocity.x,vy:G.body.velocity.y});M.current=T,Gg(e.id),he.dispose(),I.current=null;for(const G of xe.values())G.style.transform=""}},[u,T,P,L,e.id,l]);const F=z=>{var J;return z?z.type==="exam"?!y:(((J=r[z.id])==null?void 0:J.status)??"locked")==="locked":!0},V=(z,J)=>{if(!(!I.current||z.button!==0||F(p.find(he=>he.id===J))||!v.current)){try{z.currentTarget.setPointerCapture(z.pointerId)}catch{}j.current=0,N.current={track:{startX:z.clientX,startY:z.clientY},id:z.pointerId,dragging:!1,nodeId:J}}},B=z=>{const J=N.current,X=I.current;if(!J||!X||z.pointerId!==J.id)return;const ce=v.current;if(!ce||(!J.dragging&&$l(J.track,z.clientX,z.clientY)==="drag"&&(J.dragging=!0,z.currentTarget.style.zIndex="40",X.beginDrag(J.nodeId,z.clientX-ce.getBoundingClientRect().left,z.clientY-ce.getBoundingClientRect().top)),!J.dragging))return;const he=ce.getBoundingClientRect();X.moveDrag(z.clientX-he.left,z.clientY-he.top)},q=z=>{var X;const J=N.current;if(!(!J||z.pointerId!==J.id)){if((X=I.current)==null||X.endDrag(),z.currentTarget.style.zIndex="",$l(J.track,z.clientX,z.clientY)==="drag")j.current=Date.now()+300;else{const ce=p.find(he=>he.id===J.nodeId);ce&&Date.now()>=j.current&&!F(ce)&&(bo(z.clientX,z.clientY,ce.id),o(ce.id))}N.current=null}},R=z=>{const J=p[z],X=J?r[J.id]:void 0,ce=(X==null?void 0:X.status)==="mastered"||(X==null?void 0:X.status)==="in_progress"||(X==null?void 0:X.status)==="available";return{stroke:ce?"var(--brand)":"var(--ink-faint)",strokeWidth:ce?4:2.5,strokeOpacity:ce?.6:.5,strokeDasharray:ce?"none":"3 7"}},$=E.nodes[0]?{x:Ui(`${e.id}:knot`,T),y:ks}:{x:T/2,y:ks},K=p[p.length-1],D=(K==null?void 0:K.type)==="exam",Z=E.nodes[E.nodes.length-1],oe=D&&Z?{x:Ui(`${e.id}:next`,T),y:k+24}:void 0;return x.jsxs("section",{"data-testid":`map-section-${e.id.slice(0,8)}`,className:"py-3 px-2",children:[x.jsxs("div",{className:"map-signpost flex items-center gap-2 mb-3 px-2.5 py-1.5 rounded-lg shadow-sm",children:[x.jsx("span",{className:"w-6 h-6 rounded-full bg-gold text-neutral-900 text-caption font-extrabold flex items-center justify-center shrink-0 ring-2 ring-gold/40 shadow-sm",children:t+1}),x.jsx("span",{className:"text-label font-bold text-white truncate flex-1 drop-shadow-[0_1px_2px_rgba(0,0,0,0.7)]",children:e.title})]}),x.jsxs("div",{ref:v,className:"relative",style:{minHeight:k},children:[x.jsx("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",style:{height:k,overflow:"visible"},children:u?x.jsxs(x.Fragment,{children:[E.nodes[0]&&x.jsx("circle",{cx:$.x,cy:$.y,r:3.5,fill:"#ffc800",opacity:.9}),E.nodes[0]&&x.jsx("path",{"data-rope":0,d:`M ${$.x} ${$.y} L ${E.nodes[0].x} ${E.nodes[0].y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(0)}),E.segments.map((z,J)=>x.jsx("path",{"data-rope":J+1,d:`M ${z.from.x} ${z.from.y+Bt*cn} L ${z.to.x} ${z.to.y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(z.index)},z.index)),oe&&Z&&x.jsxs(x.Fragment,{children:[x.jsx("path",{"data-rope":E.segments.length+1,"data-exam-rope":!0,d:`M ${oe.x} ${oe.y} L ${Z.x} ${Z.y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(p.length-1)}),x.jsx("circle",{"data-next-knot":!0,cx:oe.x,cy:oe.y,r:3.5,fill:"#ffc800",opacity:.9})]}),Array.from({length:8},(z,J)=>x.jsx("circle",{"data-pulse":J,cx:0,cy:0,r:0,fill:"none",stroke:"white",opacity:0},J)),p.map((z,J)=>x.jsx("circle",{"data-field":J,cx:0,cy:0,r:0,fill:"none",stroke:"#1cb0f6",strokeWidth:2,opacity:0},`f-${z.id}`))]}):E.segments.map(z=>{const J=Tb(p[z.index],r);return x.jsx("path",{d:Ix(z),stroke:J?"var(--brand)":"var(--ink-faint)",strokeWidth:J?4:2.5,strokeOpacity:J?.6:.5,fill:"none",strokeLinecap:"round",strokeDasharray:J?"none":"3 7",style:J?{pathLength:1,animation:"path-draw 600ms var(--ease-out-expo)"}:void 0},z.index)})}),p.map((z,J)=>{const X=E.nodes[J];if(!X)return null;const ce=ko(z.id),he=`${ce%40/10}s`,re=`${5+ce%30/10}s`;return x.jsx("div",{"data-node-id":z.id,"data-noswipe":"",className:u?`absolute hover:z-30 will-change-transform ${F(z)?"cursor-not-allowed":"cursor-grab active:cursor-grabbing"}`:"absolute balloon-bob hover:z-30",style:{left:X.x-_/2,top:X.y-A/2+10,width:_,...u?{touchAction:"pan-y"}:{"--bob-delay":he,"--bob-duration":re}},onPointerDown:u?ne=>V(ne,z.id):void 0,onPointerMove:u?B:void 0,onPointerUp:u?q:void 0,onPointerCancel:u?q:void 0,children:x.jsx(vb,{lesson:z,progress:r[z.id],isSelected:z.id===s,isDue:i.has(z.id),isStreaming:a.includes(z.id),chapterLessonsMastered:y,onClick:()=>{Date.now()<j.current||(bo(null,null,z.id),o(z.id))}})},z.id)})]})]})}function Tb(e,t){const n=e?t[e.id]:void 0;return(n==null?void 0:n.status)==="mastered"||(n==null?void 0:n.status)==="in_progress"||(n==null?void 0:n.status)==="available"}function vb({lesson:e,progress:t,isSelected:n,isDue:r,isStreaming:s,chapterLessonsMastered:i,onClick:a}){const o=Ge(),u=(t==null?void 0:t.status)??"locked",l=(t==null?void 0:t.crownLevel)??0,c=e.type==="exam",f=Math.min(3,l),h=c?!i:u==="locked",d=c&&h,m=!c&&(u==="in_progress"||u==="mastered"),p=u==="mastered"?100:u==="in_progress"?Math.round(((t==null?void 0:t.mastery)??0)*100):0;return x.jsxs("div",{className:"group relative flex flex-col items-center w-full",children:[x.jsxs("button",{onClick:()=>!h&&a(),disabled:h,"data-testid":`${c?"exam-node":"map-node"}-${e.id.slice(0,8)}`,className:`group relative w-14 h-14 flex items-center justify-center text-2xl rounded-full transition-all duration-200 ${c?d?"lesson-bubble exam-bubble-locked":wb(l>0):kb(u)} ${h?"cursor-not-allowed":"cursor-pointer hover:scale-105"} ${n?"ring-4 ring-accent ring-offset-2 ring-offset-neutral-50 dark:ring-offset-neutral-950":""}`,title:void 0,"data-tooltip":d?`🔒 ${e.title}${o("node.locked.chapterHint")}`:c?`🎯 ${e.title}`:h?`🔒 ${e.title}`:r?`📖 ${e.title}${o("node.due.hint")}`:e.title,children:[s&&x.jsx(ch,{className:"absolute -top-1.5 -right-1.5 z-10 w-4 h-4 text-accent bg-surface-0 rounded-full p-0.5 animate-spin shadow-pop pointer-events-none","aria-label":o("thread.streamingBadge"),"data-testid":`node-streaming-${e.id.slice(0,8)}`}),m&&x.jsxs("svg",{className:"absolute inset-0 w-full h-full -rotate-90 pointer-events-none",viewBox:"0 0 56 56","aria-hidden":"true",children:[x.jsx("circle",{cx:"28",cy:"28",r:"25",fill:"none",stroke:"rgb(255 255 255 / 0.2)",strokeWidth:"2.5"}),x.jsx("circle",{cx:"28",cy:"28",r:"25",fill:"none",stroke:u==="mastered"?"#ffc800":"white",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:`${p/100*157} 157`,className:"transition-all duration-500"})]}),c?d?x.jsx("span",{"aria-label":"exam-locked",className:"relative z-10 opacity-60",children:"🔒"}):x.jsx(mx,{"aria-label":"exam",className:"relative z-10 w-6 h-6 text-white drop-shadow-[0_1px_2px_rgba(0,0,0,0.4)]",strokeWidth:2.5}):h?x.jsx("span",{"aria-label":"locked",className:"relative z-10 opacity-50",children:"🔒"}):u==="mastered"?x.jsx("span",{"aria-label":"mastered",className:"relative z-10 drop-shadow-lg crown-sparkle",children:"👑"}):u==="in_progress"?x.jsx(vn,{"aria-label":"in-progress",className:"relative z-10 w-6 h-6 text-white drop-shadow-[0_1px_2px_rgba(0,0,0,0.4)]",strokeWidth:2.5}):x.jsx("span",{"aria-label":"available",className:"relative z-10 drop-shadow",children:"⭐"}),r&&!h&&!c&&x.jsx("span",{className:"absolute -top-1 -right-1 w-4 h-4 rounded-full bg-review text-white text-caption flex items-center justify-center font-bold border-2 border-neutral-50 dark:border-neutral-950",children:"!"})]}),c&&x.jsx("div",{className:"flex gap-0.5 mt-1","data-testid":`map-stars-${e.id.slice(0,8)}`,children:[0,1,2].map(g=>x.jsx("span",{className:`text-caption ${g<f?"text-gold":"text-white/25"}`,children:"★"},g))}),n&&x.jsx("div",{className:"mt-1 text-caption text-center leading-tight max-w-[120px] font-bold px-1.5 py-0.5 rounded-md bg-brand/90 text-white shadow-sm",children:e.title})]})}function kb(e){switch(e){case"locked":return"lesson-bubble lesson-bubble-locked";case"available":return"lesson-bubble lesson-bubble-available";case"in_progress":return"lesson-bubble lesson-bubble-in-progress";case"mastered":return"lesson-bubble lesson-bubble-mastered";default:return"lesson-bubble lesson-bubble-locked"}}function wb(e){return e?"lesson-bubble exam-bubble-passed":"lesson-bubble exam-bubble"}function Sb({available:e,current:t,onChange:n}){const r=Ge(),[s,i]=w.useState(!1),a={en:"English","zh-CN":"中文","zh-TW":"繁體",ja:"日本語",ko:"한국어",fr:"Français",de:"Deutsch",es:"Español","pt-BR":"Português",ru:"Русский",it:"Italiano",ar:"العربية",hi:"हिन्दी",tr:"Türkçe",pl:"Polski",nl:"Nederlands",id:"Indonesia",vi:"Tiếng Việt",th:"ไทย",sv:"Svenska",fi:"Suomi"},o=t?a[t]??t:r("lang.original");return x.jsxs("div",{className:"relative shrink-0",children:[x.jsxs("button",{onClick:()=>i(!s),className:"flex items-center gap-1 px-1.5 py-0.5 rounded-md text-caption font-bold text-white/80 hover:text-white hover:bg-white/10 transition-colors","data-testid":"lang-switcher-btn",children:[x.jsx(q1,{className:"w-3 h-3"}),o]}),s&&x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>i(!1)}),x.jsxs("div",{className:"absolute top-full right-0 mt-1 z-50 bg-surface-0 rounded-lg shadow-elevated p-1 min-w-[100px] max-h-48 overflow-y-auto",children:[x.jsx("button",{"data-testid":"lang-option-original",onClick:()=>{n(null),i(!1)},className:`w-full text-left px-2 py-1 rounded-md text-caption font-bold transition-colors ${t===null?"bg-brand/15 text-brand":"text-ink-muted hover:bg-neutral-100 dark:hover:bg-neutral-800"}`,children:r("lang.original")}),e.map(u=>x.jsx("button",{"data-testid":`lang-option-${u}`,onClick:()=>{n(u),i(!1)},className:`w-full text-left px-2 py-1 rounded-md text-caption font-bold transition-colors ${t===u?"bg-brand/15 text-brand":"text-ink-muted hover:bg-neutral-100 dark:hover:bg-neutral-800"}`,children:a[u]??u},u))]})]})]})}const Ab=500,Rn=8;function Cb(){const[e,t]=w.useState(null),[n,r]=w.useState({mode:"cursor",x:0,y:0}),[s,i]=w.useState({w:0,h:0}),a=w.useRef(null),o=w.useCallback(()=>window.matchMedia("(pointer: coarse)").matches,[]),u=w.useCallback(g=>{o()||r(y=>y.mode==="cursor"?{...y,x:g.clientX,y:g.clientY}:y)},[o]),l=w.useCallback(g=>{var T;if(o())return;const y=(T=g.target)==null?void 0:T.closest("[data-tooltip]"),v=y==null?void 0:y.getAttribute("data-tooltip");if(v){t(v),r({mode:"cursor",x:g.clientX,y:g.clientY});return}t(null)},[o]),c=w.useCallback(g=>{var v,T;if(o())return;((T=(v=g.target)==null?void 0:v.closest)==null?void 0:T.call(v,"[data-tooltip]"))&&t(null)},[o]);if(w.useEffect(()=>(document.addEventListener("mousemove",u,{passive:!0}),document.addEventListener("mouseover",l,{passive:!0}),document.addEventListener("mouseout",c,{passive:!0}),()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseover",l),document.removeEventListener("mouseout",c)}),[u,l,c]),w.useEffect(()=>{let g=null;const y=()=>{g&&(clearTimeout(g),g=null)},v=k=>{var S;if(!o()||k.touches.length!==1)return y();const _=(S=k.target)==null?void 0:S.closest("[data-tooltip]"),A=_==null?void 0:_.getAttribute("data-tooltip");if(!A||!_)return y();const I=_;y(),g=setTimeout(()=>{I.isConnected&&(t(A),r({mode:"rect",x:0,y:0,rect:I.getBoundingClientRect()}))},Ab)},T=()=>{y(),t(k=>k&&null)},C=()=>y(),E=()=>{y(),t(null)};return document.addEventListener("touchstart",v,{passive:!0}),document.addEventListener("touchend",T,{passive:!0}),document.addEventListener("touchmove",C,{passive:!0}),document.addEventListener("touchcancel",E,{passive:!0}),()=>{y(),document.removeEventListener("touchstart",v),document.removeEventListener("touchend",T),document.removeEventListener("touchmove",C),document.removeEventListener("touchcancel",E)}},[o]),w.useLayoutEffect(()=>{a.current&&e&&i({w:a.current.offsetWidth,h:a.current.offsetHeight})},[e]),!e)return null;const f=window.innerWidth,h=window.innerHeight;let d,m,p;if(n.mode==="rect"&&n.rect){const g=n.rect;d=g.left+g.width/2-s.w/2,m=g.top-s.h-6,p="none",m<Rn&&(m=g.bottom+6)}else d=n.x,m=n.y-6,p="translate(0, -100%)";return d=Math.min(Math.max(d,Rn),Math.max(Rn,f-s.w-Rn)),m=Math.min(Math.max(m,Rn),Math.max(Rn,h-s.h-Rn)),yh.createPortal(x.jsx("div",{ref:a,style:{position:"fixed",left:d,top:m,transform:p,zIndex:99999,pointerEvents:"none",visibility:s.w?"visible":"hidden",background:"rgb(var(--surface-0-rgb) / 0.92)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",color:"var(--ink)",border:"1px solid rgb(var(--border-rgb) / 0.5)",fontSize:"0.875rem",fontWeight:600,lineHeight:1.4,padding:"4px 10px",borderRadius:"8px",maxWidth:"260px",wordBreak:"break-word",boxShadow:"0 4px 12px rgb(var(--shadow-rgb) / 0.15)",whiteSpace:"normal"},children:e}),document.body)}function JR(){}function Zl(e){const t=[],n=String(e||"");let r=n.indexOf(","),s=0,i=!1;for(;!i;){r===-1&&(r=n.length,i=!0);const a=n.slice(s,r).trim();(a||!i)&&t.push(a),s=r+1,r=n.indexOf(",",s)}return t}function Lh(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const _b=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Ib=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Nb={};function Jl(e,t){return(Nb.jsx?Ib:_b).test(e)}const Rb=/[ \t\n\f\r]/g;function Lb(e){return typeof e=="object"?e.type==="text"?ec(e.value):!1:ec(e)}function ec(e){return e.replace(Rb,"")===""}class wi{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}wi.prototype.normal={};wi.prototype.property={};wi.prototype.space=void 0;function Mh(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new wi(n,r,t)}function pi(e){return e.toLowerCase()}class Nt{constructor(t,n){this.attribute=n,this.property=t}}Nt.prototype.attribute="";Nt.prototype.booleanish=!1;Nt.prototype.boolean=!1;Nt.prototype.commaOrSpaceSeparated=!1;Nt.prototype.commaSeparated=!1;Nt.prototype.defined=!1;Nt.prototype.mustUseProperty=!1;Nt.prototype.number=!1;Nt.prototype.overloadedBoolean=!1;Nt.prototype.property="";Nt.prototype.spaceSeparated=!1;Nt.prototype.space=void 0;let Mb=0;const Re=Qn(),ht=Qn(),wo=Qn(),ue=Qn(),Je=Qn(),qn=Qn(),Mt=Qn();function Qn(){return 2**++Mb}const So=Object.freeze(Object.defineProperty({__proto__:null,boolean:Re,booleanish:ht,commaOrSpaceSeparated:Mt,commaSeparated:qn,number:ue,overloadedBoolean:wo,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),Ca=Object.keys(So);class Au extends Nt{constructor(t,n,r,s){let i=-1;if(super(t,n),tc(this,"space",s),typeof r=="number")for(;++i<Ca.length;){const a=Ca[i];tc(this,Ca[i],(r&So[a])===So[a])}}}Au.prototype.defined=!0;function tc(e,t,n){n&&(e[t]=n)}function Sr(e){const t={},n={};for(const[r,s]of Object.entries(e.properties)){const i=new Au(r,e.transform(e.attributes||{},r),s,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[pi(r)]=r,n[pi(i.attribute)]=r}return new wi(t,n,e.space)}const Ph=Sr({properties:{ariaActiveDescendant:null,ariaAtomic:ht,ariaAutoComplete:null,ariaBusy:ht,ariaChecked:ht,ariaColCount:ue,ariaColIndex:ue,ariaColSpan:ue,ariaControls:Je,ariaCurrent:null,ariaDescribedBy:Je,ariaDetails:null,ariaDisabled:ht,ariaDropEffect:Je,ariaErrorMessage:null,ariaExpanded:ht,ariaFlowTo:Je,ariaGrabbed:ht,ariaHasPopup:null,ariaHidden:ht,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Je,ariaLevel:ue,ariaLive:null,ariaModal:ht,ariaMultiLine:ht,ariaMultiSelectable:ht,ariaOrientation:null,ariaOwns:Je,ariaPlaceholder:null,ariaPosInSet:ue,ariaPressed:ht,ariaReadOnly:ht,ariaRelevant:null,ariaRequired:ht,ariaRoleDescription:Je,ariaRowCount:ue,ariaRowIndex:ue,ariaRowSpan:ue,ariaSelected:ht,ariaSetSize:ue,ariaSort:null,ariaValueMax:ue,ariaValueMin:ue,ariaValueNow:ue,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Dh(e,t){return t in e?e[t]:t}function Oh(e,t){return Dh(e,t.toLowerCase())}const Pb=Sr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:qn,acceptCharset:Je,accessKey:Je,action:null,allow:null,allowFullScreen:Re,allowPaymentRequest:Re,allowUserMedia:Re,alpha:Re,alt:null,as:null,async:Re,autoCapitalize:null,autoComplete:Je,autoFocus:Re,autoPlay:Re,blocking:Je,capture:null,charSet:null,checked:Re,cite:null,className:Je,closedBy:null,colorSpace:null,cols:ue,colSpan:ue,command:null,commandFor:null,content:null,contentEditable:ht,controls:Re,controlsList:Je,coords:ue|qn,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Re,defer:Re,dir:null,dirName:null,disabled:Re,download:wo,draggable:ht,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Re,formTarget:null,headers:Je,height:ue,hidden:wo,high:ue,href:null,hrefLang:null,htmlFor:Je,httpEquiv:Je,id:null,imageSizes:null,imageSrcSet:null,inert:Re,inputMode:null,integrity:null,is:null,isMap:Re,itemId:null,itemProp:Je,itemRef:Je,itemScope:Re,itemType:Je,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Re,low:ue,manifest:null,max:null,maxLength:ue,media:null,method:null,min:null,minLength:ue,multiple:Re,muted:Re,name:null,nonce:null,noModule:Re,noValidate:Re,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Re,optimum:ue,pattern:null,ping:Je,placeholder:null,playsInline:Re,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Re,referrerPolicy:null,rel:Je,required:Re,reversed:Re,rows:ue,rowSpan:ue,sandbox:Je,scope:null,scoped:Re,seamless:Re,selected:Re,shadowRootClonable:Re,shadowRootCustomElementRegistry:Re,shadowRootDelegatesFocus:Re,shadowRootMode:null,shadowRootSerializable:Re,shape:null,size:ue,sizes:null,slot:null,span:ue,spellCheck:ht,src:null,srcDoc:null,srcLang:null,srcSet:null,start:ue,step:null,style:null,tabIndex:ue,target:null,title:null,translate:null,type:null,typeMustMatch:Re,useMap:null,value:ht,width:ue,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Je,axis:null,background:null,bgColor:null,border:ue,borderColor:null,bottomMargin:ue,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Re,declare:Re,event:null,face:null,frame:null,frameBorder:null,hSpace:ue,leftMargin:ue,link:null,longDesc:null,lowSrc:null,marginHeight:ue,marginWidth:ue,noResize:Re,noHref:Re,noShade:Re,noWrap:Re,object:null,profile:null,prompt:null,rev:null,rightMargin:ue,rules:null,scheme:null,scrolling:ht,standby:null,summary:null,text:null,topMargin:ue,valueType:null,version:null,vAlign:null,vLink:null,vSpace:ue,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Re,disablePictureInPicture:Re,disableRemotePlayback:Re,exportParts:qn,part:Je,prefix:null,property:null,results:ue,security:null,unselectable:null},space:"html",transform:Oh}),Db=Sr({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Mt,accentHeight:ue,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:ue,amplitude:ue,arabicForm:null,ascent:ue,attributeName:null,attributeType:null,azimuth:ue,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:ue,by:null,calcMode:null,capHeight:ue,className:Je,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:ue,diffuseConstant:ue,direction:null,display:null,dur:null,divisor:ue,dominantBaseline:null,download:Re,dx:null,dy:null,edgeMode:null,editable:null,elevation:ue,enableBackground:null,end:null,event:null,exponent:ue,externalResourcesRequired:null,fill:null,fillOpacity:ue,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:qn,g2:qn,glyphName:qn,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:ue,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:ue,horizOriginX:ue,horizOriginY:ue,id:null,ideographic:ue,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:ue,k:ue,k1:ue,k2:ue,k3:ue,k4:ue,kernelMatrix:Mt,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:ue,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:ue,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:ue,overlineThickness:ue,paintOrder:null,panose1:null,path:null,pathLength:ue,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Je,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:ue,pointsAtY:ue,pointsAtZ:ue,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Mt,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Mt,rev:Mt,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Mt,requiredFeatures:Mt,requiredFonts:Mt,requiredFormats:Mt,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:ue,specularExponent:ue,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:ue,strikethroughThickness:ue,string:null,stroke:null,strokeDashArray:Mt,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:ue,strokeOpacity:ue,strokeWidth:null,style:null,surfaceScale:ue,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Mt,tabIndex:ue,tableValues:null,target:null,targetX:ue,targetY:ue,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Mt,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:ue,underlineThickness:ue,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:ue,values:null,vAlphabetic:ue,vMathematical:ue,vectorEffect:null,vHanging:ue,vIdeographic:ue,version:null,vertAdvY:ue,vertOriginX:ue,vertOriginY:ue,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:ue,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Dh}),Fh=Sr({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Bh=Sr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Oh}),jh=Sr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Ob={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},Fb=/[A-Z]/g,nc=/-[a-z]/g,Bb=/^data[-\w.:]+$/i;function Ws(e,t){const n=pi(t);let r=t,s=Nt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Bb.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(nc,Hb);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!nc.test(i)){let a=i.replace(Fb,jb);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Au}return new s(r,t)}function jb(e){return"-"+e.toLowerCase()}function Hb(e){return e.charAt(1).toUpperCase()}const Si=Mh([Ph,Pb,Fh,Bh,jh],"html"),Sn=Mh([Ph,Db,Fh,Bh,jh],"svg");function rc(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Hh(e){return e.join(" ").trim()}var ur={},_a,ic;function Ub(){if(ic)return _a;ic=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,o=/^\s+|\s+$/g,u=`
412
+ */var Nx=as.exports,ql;function Rx(){return ql||(ql=1,(function(e,t){(function(r,s){e.exports=s()})(Nx,function(){return(function(n){var r={};function s(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return n[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}return s.m=n,s.c=r,s.d=function(i,a,o){s.o(i,a)||Object.defineProperty(i,a,{enumerable:!0,get:o})},s.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},s.t=function(i,a){if(a&1&&(i=s(i)),a&8||a&4&&typeof i=="object"&&i&&i.__esModule)return i;var o=Object.create(null);if(s.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:i}),a&2&&typeof i!="string")for(var u in i)s.d(o,u,(function(l){return i[l]}).bind(null,u));return o},s.n=function(i){var a=i&&i.__esModule?function(){return i.default}:function(){return i};return s.d(a,"a",a),a},s.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},s.p="",s(s.s=20)})([(function(n,r){var s={};n.exports=s,(function(){s._baseDelta=1e3/60,s._nextId=0,s._seed=0,s._nowStartTime=+new Date,s._warnedOnce={},s._decomp=null,s.extend=function(a,o){var u,l;typeof o=="boolean"?(u=2,l=o):(u=1,l=!0);for(var c=u;c<arguments.length;c++){var f=arguments[c];if(f)for(var h in f)l&&f[h]&&f[h].constructor===Object&&(!a[h]||a[h].constructor===Object)?(a[h]=a[h]||{},s.extend(a[h],l,f[h])):a[h]=f[h]}return a},s.clone=function(a,o){return s.extend({},o,a)},s.keys=function(a){if(Object.keys)return Object.keys(a);var o=[];for(var u in a)o.push(u);return o},s.values=function(a){var o=[];if(Object.keys){for(var u=Object.keys(a),l=0;l<u.length;l++)o.push(a[u[l]]);return o}for(var c in a)o.push(a[c]);return o},s.get=function(a,o,u,l){o=o.split(".").slice(u,l);for(var c=0;c<o.length;c+=1)a=a[o[c]];return a},s.set=function(a,o,u,l,c){var f=o.split(".").slice(l,c);return s.get(a,o,0,-1)[f[f.length-1]]=u,u},s.shuffle=function(a){for(var o=a.length-1;o>0;o--){var u=Math.floor(s.random()*(o+1)),l=a[o];a[o]=a[u],a[u]=l}return a},s.choose=function(a){return a[Math.floor(s.random()*a.length)]},s.isElement=function(a){return typeof HTMLElement<"u"?a instanceof HTMLElement:!!(a&&a.nodeType&&a.nodeName)},s.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"},s.isFunction=function(a){return typeof a=="function"},s.isPlainObject=function(a){return typeof a=="object"&&a.constructor===Object},s.isString=function(a){return toString.call(a)==="[object String]"},s.clamp=function(a,o,u){return a<o?o:a>u?u:a},s.sign=function(a){return a<0?-1:1},s.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-s._nowStartTime},s.random=function(a,o){return a=typeof a<"u"?a:0,o=typeof o<"u"?o:1,a+i()*(o-a)};var i=function(){return s._seed=(s._seed*9301+49297)%233280,s._seed/233280};s.colorToNumber=function(a){return a=a.replace("#",""),a.length==3&&(a=a.charAt(0)+a.charAt(0)+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)),parseInt(a,16)},s.logLevel=1,s.log=function(){console&&s.logLevel>0&&s.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.info=function(){console&&s.logLevel>0&&s.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.warn=function(){console&&s.logLevel>0&&s.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},s.warnOnce=function(){var a=Array.prototype.slice.call(arguments).join(" ");s._warnedOnce[a]||(s.warn(a),s._warnedOnce[a]=!0)},s.deprecated=function(a,o,u){a[o]=s.chain(function(){s.warnOnce("🔅 deprecated 🔅",u)},a[o])},s.nextId=function(){return s._nextId++},s.indexOf=function(a,o){if(a.indexOf)return a.indexOf(o);for(var u=0;u<a.length;u++)if(a[u]===o)return u;return-1},s.map=function(a,o){if(a.map)return a.map(o);for(var u=[],l=0;l<a.length;l+=1)u.push(o(a[l]));return u},s.topologicalSort=function(a){var o=[],u=[],l=[];for(var c in a)!u[c]&&!l[c]&&s._topologicalSort(c,u,l,a,o);return o},s._topologicalSort=function(a,o,u,l,c){var f=l[a]||[];u[a]=!0;for(var h=0;h<f.length;h+=1){var d=f[h];u[d]||o[d]||s._topologicalSort(d,o,u,l,c)}u[a]=!1,o[a]=!0,c.push(a)},s.chain=function(){for(var a=[],o=0;o<arguments.length;o+=1){var u=arguments[o];u._chained?a.push.apply(a,u._chained):a.push(u)}var l=function(){for(var c,f=new Array(arguments.length),h=0,d=arguments.length;h<d;h++)f[h]=arguments[h];for(h=0;h<a.length;h+=1){var m=a[h].apply(c,f);typeof m<"u"&&(c=m)}return c};return l._chained=a,l},s.chainPathBefore=function(a,o,u){return s.set(a,o,s.chain(u,s.get(a,o)))},s.chainPathAfter=function(a,o,u){return s.set(a,o,s.chain(s.get(a,o),u))},s.setDecomp=function(a){s._decomp=a},s.getDecomp=function(){var a=s._decomp;try{!a&&typeof window<"u"&&(a=window.decomp),!a&&typeof Al<"u"&&(a=Al.decomp)}catch{a=null}return a}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i){var a={min:{x:0,y:0},max:{x:0,y:0}};return i&&s.update(a,i),a},s.update=function(i,a,o){i.min.x=1/0,i.max.x=-1/0,i.min.y=1/0,i.max.y=-1/0;for(var u=0;u<a.length;u++){var l=a[u];l.x>i.max.x&&(i.max.x=l.x),l.x<i.min.x&&(i.min.x=l.x),l.y>i.max.y&&(i.max.y=l.y),l.y<i.min.y&&(i.min.y=l.y)}o&&(o.x>0?i.max.x+=o.x:i.min.x+=o.x,o.y>0?i.max.y+=o.y:i.min.y+=o.y)},s.contains=function(i,a){return a.x>=i.min.x&&a.x<=i.max.x&&a.y>=i.min.y&&a.y<=i.max.y},s.overlaps=function(i,a){return i.min.x<=a.max.x&&i.max.x>=a.min.x&&i.max.y>=a.min.y&&i.min.y<=a.max.y},s.translate=function(i,a){i.min.x+=a.x,i.max.x+=a.x,i.min.y+=a.y,i.max.y+=a.y},s.shift=function(i,a){var o=i.max.x-i.min.x,u=i.max.y-i.min.y;i.min.x=a.x,i.max.x=a.x+o,i.min.y=a.y,i.max.y=a.y+u}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i,a){return{x:i||0,y:a||0}},s.clone=function(i){return{x:i.x,y:i.y}},s.magnitude=function(i){return Math.sqrt(i.x*i.x+i.y*i.y)},s.magnitudeSquared=function(i){return i.x*i.x+i.y*i.y},s.rotate=function(i,a,o){var u=Math.cos(a),l=Math.sin(a);o||(o={});var c=i.x*u-i.y*l;return o.y=i.x*l+i.y*u,o.x=c,o},s.rotateAbout=function(i,a,o,u){var l=Math.cos(a),c=Math.sin(a);u||(u={});var f=o.x+((i.x-o.x)*l-(i.y-o.y)*c);return u.y=o.y+((i.x-o.x)*c+(i.y-o.y)*l),u.x=f,u},s.normalise=function(i){var a=s.magnitude(i);return a===0?{x:0,y:0}:{x:i.x/a,y:i.y/a}},s.dot=function(i,a){return i.x*a.x+i.y*a.y},s.cross=function(i,a){return i.x*a.y-i.y*a.x},s.cross3=function(i,a,o){return(a.x-i.x)*(o.y-i.y)-(a.y-i.y)*(o.x-i.x)},s.add=function(i,a,o){return o||(o={}),o.x=i.x+a.x,o.y=i.y+a.y,o},s.sub=function(i,a,o){return o||(o={}),o.x=i.x-a.x,o.y=i.y-a.y,o},s.mult=function(i,a){return{x:i.x*a,y:i.y*a}},s.div=function(i,a){return{x:i.x/a,y:i.y/a}},s.perp=function(i,a){return a=a===!0?-1:1,{x:a*-i.y,y:a*i.x}},s.neg=function(i){return{x:-i.x,y:-i.y}},s.angle=function(i,a){return Math.atan2(a.y-i.y,a.x-i.x)},s._temp=[s.create(),s.create(),s.create(),s.create(),s.create(),s.create()]})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(0);(function(){i.create=function(u,l){for(var c=[],f=0;f<u.length;f++){var h=u[f],d={x:h.x,y:h.y,index:f,body:l,isInternal:!1};c.push(d)}return c},i.fromPath=function(u,l){var c=/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/ig,f=[];return u.replace(c,function(h,d,m){f.push({x:parseFloat(d),y:parseFloat(m)})}),i.create(f,l)},i.centre=function(u){for(var l=i.area(u,!0),c={x:0,y:0},f,h,d,m=0;m<u.length;m++)d=(m+1)%u.length,f=a.cross(u[m],u[d]),h=a.mult(a.add(u[m],u[d]),f),c=a.add(c,h);return a.div(c,6*l)},i.mean=function(u){for(var l={x:0,y:0},c=0;c<u.length;c++)l.x+=u[c].x,l.y+=u[c].y;return a.div(l,u.length)},i.area=function(u,l){for(var c=0,f=u.length-1,h=0;h<u.length;h++)c+=(u[f].x-u[h].x)*(u[f].y+u[h].y),f=h;return l?c/2:Math.abs(c)/2},i.inertia=function(u,l){for(var c=0,f=0,h=u,d,m,p=0;p<h.length;p++)m=(p+1)%h.length,d=Math.abs(a.cross(h[m],h[p])),c+=d*(a.dot(h[m],h[m])+a.dot(h[m],h[p])+a.dot(h[p],h[p])),f+=d;return l/6*(c/f)},i.translate=function(u,l,c){c=typeof c<"u"?c:1;var f=u.length,h=l.x*c,d=l.y*c,m;for(m=0;m<f;m++)u[m].x+=h,u[m].y+=d;return u},i.rotate=function(u,l,c){if(l!==0){var f=Math.cos(l),h=Math.sin(l),d=c.x,m=c.y,p=u.length,g,y,v,T;for(T=0;T<p;T++)g=u[T],y=g.x-d,v=g.y-m,g.x=d+(y*f-v*h),g.y=m+(y*h+v*f);return u}},i.contains=function(u,l){for(var c=l.x,f=l.y,h=u.length,d=u[h-1],m,p=0;p<h;p++){if(m=u[p],(c-d.x)*(m.y-d.y)+(f-d.y)*(d.x-m.x)>0)return!1;d=m}return!0},i.scale=function(u,l,c,f){if(l===1&&c===1)return u;f=f||i.centre(u);for(var h,d,m=0;m<u.length;m++)h=u[m],d=a.sub(h,f),u[m].x=f.x+d.x*l,u[m].y=f.y+d.y*c;return u},i.chamfer=function(u,l,c,f,h){typeof l=="number"?l=[l]:l=l||[8],c=typeof c<"u"?c:-1,f=f||2,h=h||14;for(var d=[],m=0;m<u.length;m++){var p=u[m-1>=0?m-1:u.length-1],g=u[m],y=u[(m+1)%u.length],v=l[m<l.length?m:l.length-1];if(v===0){d.push(g);continue}var T=a.normalise({x:g.y-p.y,y:p.x-g.x}),C=a.normalise({x:y.y-g.y,y:g.x-y.x}),E=Math.sqrt(2*Math.pow(v,2)),k=a.mult(o.clone(T),v),_=a.normalise(a.mult(a.add(T,C),.5)),A=a.sub(g,a.mult(_,E)),I=c;c===-1&&(I=Math.pow(v,.32)*1.75),I=o.clamp(I,f,h),I%2===1&&(I+=1);for(var S=Math.acos(a.dot(T,C)),M=S/I,N=0;N<I;N++)d.push(a.add(a.rotate(k,M*N),A))}return d},i.clockwiseSort=function(u){var l=i.mean(u);return u.sort(function(c,f){return a.angle(l,c)-a.angle(l,f)}),u},i.isConvex=function(u){var l=0,c=u.length,f,h,d,m;if(c<3)return null;for(f=0;f<c;f++)if(h=(f+1)%c,d=(f+2)%c,m=(u[h].x-u[f].x)*(u[d].y-u[h].y),m-=(u[h].y-u[f].y)*(u[d].x-u[h].x),m<0?l|=1:m>0&&(l|=2),l===3)return!1;return l!==0?!0:null},i.hull=function(u){var l=[],c=[],f,h;for(u=u.slice(0),u.sort(function(d,m){var p=d.x-m.x;return p!==0?p:d.y-m.y}),h=0;h<u.length;h+=1){for(f=u[h];c.length>=2&&a.cross3(c[c.length-2],c[c.length-1],f)<=0;)c.pop();c.push(f)}for(h=u.length-1;h>=0;h-=1){for(f=u[h];l.length>=2&&a.cross3(l[l.length-2],l[l.length-1],f)<=0;)l.pop();l.push(f)}return l.pop(),c.pop(),l.concat(c)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(2),u=s(7),l=s(0),c=s(1),f=s(11);(function(){i._timeCorrection=!0,i._inertiaScale=4,i._nextCollidingGroupId=1,i._nextNonCollidingGroupId=-1,i._nextCategory=1,i._baseDelta=1e3/60,i.create=function(d){var m={id:l.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:a.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},p=l.extend(m,d);return h(p,d),p},i.nextGroup=function(d){return d?i._nextNonCollidingGroupId--:i._nextCollidingGroupId++},i.nextCategory=function(){return i._nextCategory=i._nextCategory<<1,i._nextCategory};var h=function(d,m){m=m||{},i.set(d,{bounds:d.bounds||c.create(d.vertices),positionPrev:d.positionPrev||o.clone(d.position),anglePrev:d.anglePrev||d.angle,vertices:d.vertices,parts:d.parts||[d],isStatic:d.isStatic,isSleeping:d.isSleeping,parent:d.parent||d}),a.rotate(d.vertices,d.angle,d.position),f.rotate(d.axes,d.angle),c.update(d.bounds,d.vertices,d.velocity),i.set(d,{axes:m.axes||d.axes,area:m.area||d.area,mass:m.mass||d.mass,inertia:m.inertia||d.inertia});var p=d.isStatic?"#14151f":l.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),g=d.isStatic?"#555":"#ccc",y=d.isStatic&&d.render.fillStyle===null?1:0;d.render.fillStyle=d.render.fillStyle||p,d.render.strokeStyle=d.render.strokeStyle||g,d.render.lineWidth=d.render.lineWidth||y,d.render.sprite.xOffset+=-(d.bounds.min.x-d.position.x)/(d.bounds.max.x-d.bounds.min.x),d.render.sprite.yOffset+=-(d.bounds.min.y-d.position.y)/(d.bounds.max.y-d.bounds.min.y)};i.set=function(d,m,p){var g;typeof m=="string"&&(g=m,m={},m[g]=p);for(g in m)if(Object.prototype.hasOwnProperty.call(m,g))switch(p=m[g],g){case"isStatic":i.setStatic(d,p);break;case"isSleeping":u.set(d,p);break;case"mass":i.setMass(d,p);break;case"density":i.setDensity(d,p);break;case"inertia":i.setInertia(d,p);break;case"vertices":i.setVertices(d,p);break;case"position":i.setPosition(d,p);break;case"angle":i.setAngle(d,p);break;case"velocity":i.setVelocity(d,p);break;case"angularVelocity":i.setAngularVelocity(d,p);break;case"speed":i.setSpeed(d,p);break;case"angularSpeed":i.setAngularSpeed(d,p);break;case"parts":i.setParts(d,p);break;case"centre":i.setCentre(d,p);break;default:d[g]=p}},i.setStatic=function(d,m){for(var p=0;p<d.parts.length;p++){var g=d.parts[p];g.isStatic=m,m?(g._original={restitution:g.restitution,friction:g.friction,mass:g.mass,inertia:g.inertia,density:g.density,inverseMass:g.inverseMass,inverseInertia:g.inverseInertia},g.restitution=0,g.friction=1,g.mass=g.inertia=g.density=1/0,g.inverseMass=g.inverseInertia=0,g.positionPrev.x=g.position.x,g.positionPrev.y=g.position.y,g.anglePrev=g.angle,g.angularVelocity=0,g.speed=0,g.angularSpeed=0,g.motion=0):g._original&&(g.restitution=g._original.restitution,g.friction=g._original.friction,g.mass=g._original.mass,g.inertia=g._original.inertia,g.density=g._original.density,g.inverseMass=g._original.inverseMass,g.inverseInertia=g._original.inverseInertia,g._original=null)}},i.setMass=function(d,m){var p=d.inertia/(d.mass/6);d.inertia=p*(m/6),d.inverseInertia=1/d.inertia,d.mass=m,d.inverseMass=1/d.mass,d.density=d.mass/d.area},i.setDensity=function(d,m){i.setMass(d,m*d.area),d.density=m},i.setInertia=function(d,m){d.inertia=m,d.inverseInertia=1/d.inertia},i.setVertices=function(d,m){m[0].body===d?d.vertices=m:d.vertices=a.create(m,d),d.axes=f.fromVertices(d.vertices),d.area=a.area(d.vertices),i.setMass(d,d.density*d.area);var p=a.centre(d.vertices);a.translate(d.vertices,p,-1),i.setInertia(d,i._inertiaScale*a.inertia(d.vertices,d.mass)),a.translate(d.vertices,d.position),c.update(d.bounds,d.vertices,d.velocity)},i.setParts=function(d,m,p){var g;for(m=m.slice(0),d.parts.length=0,d.parts.push(d),d.parent=d,g=0;g<m.length;g++){var y=m[g];y!==d&&(y.parent=d,d.parts.push(y))}if(d.parts.length!==1){if(p=typeof p<"u"?p:!0,p){var v=[];for(g=0;g<m.length;g++)v=v.concat(m[g].vertices);a.clockwiseSort(v);var T=a.hull(v),C=a.centre(T);i.setVertices(d,T),a.translate(d.vertices,C)}var E=i._totalProperties(d);d.area=E.area,d.parent=d,d.position.x=E.centre.x,d.position.y=E.centre.y,d.positionPrev.x=E.centre.x,d.positionPrev.y=E.centre.y,i.setMass(d,E.mass),i.setInertia(d,E.inertia),i.setPosition(d,E.centre)}},i.setCentre=function(d,m,p){p?(d.positionPrev.x+=m.x,d.positionPrev.y+=m.y,d.position.x+=m.x,d.position.y+=m.y):(d.positionPrev.x=m.x-(d.position.x-d.positionPrev.x),d.positionPrev.y=m.y-(d.position.y-d.positionPrev.y),d.position.x=m.x,d.position.y=m.y)},i.setPosition=function(d,m,p){var g=o.sub(m,d.position);p?(d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.velocity.x=g.x,d.velocity.y=g.y,d.speed=o.magnitude(g)):(d.positionPrev.x+=g.x,d.positionPrev.y+=g.y);for(var y=0;y<d.parts.length;y++){var v=d.parts[y];v.position.x+=g.x,v.position.y+=g.y,a.translate(v.vertices,g),c.update(v.bounds,v.vertices,d.velocity)}},i.setAngle=function(d,m,p){var g=m-d.angle;p?(d.anglePrev=d.angle,d.angularVelocity=g,d.angularSpeed=Math.abs(g)):d.anglePrev+=g;for(var y=0;y<d.parts.length;y++){var v=d.parts[y];v.angle+=g,a.rotate(v.vertices,g,d.position),f.rotate(v.axes,g),c.update(v.bounds,v.vertices,d.velocity),y>0&&o.rotateAbout(v.position,g,d.position,v.position)}},i.setVelocity=function(d,m){var p=d.deltaTime/i._baseDelta;d.positionPrev.x=d.position.x-m.x*p,d.positionPrev.y=d.position.y-m.y*p,d.velocity.x=(d.position.x-d.positionPrev.x)/p,d.velocity.y=(d.position.y-d.positionPrev.y)/p,d.speed=o.magnitude(d.velocity)},i.getVelocity=function(d){var m=i._baseDelta/d.deltaTime;return{x:(d.position.x-d.positionPrev.x)*m,y:(d.position.y-d.positionPrev.y)*m}},i.getSpeed=function(d){return o.magnitude(i.getVelocity(d))},i.setSpeed=function(d,m){i.setVelocity(d,o.mult(o.normalise(i.getVelocity(d)),m))},i.setAngularVelocity=function(d,m){var p=d.deltaTime/i._baseDelta;d.anglePrev=d.angle-m*p,d.angularVelocity=(d.angle-d.anglePrev)/p,d.angularSpeed=Math.abs(d.angularVelocity)},i.getAngularVelocity=function(d){return(d.angle-d.anglePrev)*i._baseDelta/d.deltaTime},i.getAngularSpeed=function(d){return Math.abs(i.getAngularVelocity(d))},i.setAngularSpeed=function(d,m){i.setAngularVelocity(d,l.sign(i.getAngularVelocity(d))*m)},i.translate=function(d,m,p){i.setPosition(d,o.add(d.position,m),p)},i.rotate=function(d,m,p,g){if(!p)i.setAngle(d,d.angle+m,g);else{var y=Math.cos(m),v=Math.sin(m),T=d.position.x-p.x,C=d.position.y-p.y;i.setPosition(d,{x:p.x+(T*y-C*v),y:p.y+(T*v+C*y)},g),i.setAngle(d,d.angle+m,g)}},i.scale=function(d,m,p,g){var y=0,v=0;g=g||d.position;for(var T=0;T<d.parts.length;T++){var C=d.parts[T];a.scale(C.vertices,m,p,g),C.axes=f.fromVertices(C.vertices),C.area=a.area(C.vertices),i.setMass(C,d.density*C.area),a.translate(C.vertices,{x:-C.position.x,y:-C.position.y}),i.setInertia(C,i._inertiaScale*a.inertia(C.vertices,C.mass)),a.translate(C.vertices,{x:C.position.x,y:C.position.y}),T>0&&(y+=C.area,v+=C.inertia),C.position.x=g.x+(C.position.x-g.x)*m,C.position.y=g.y+(C.position.y-g.y)*p,c.update(C.bounds,C.vertices,d.velocity)}d.parts.length>1&&(d.area=y,d.isStatic||(i.setMass(d,d.density*y),i.setInertia(d,v))),d.circleRadius&&(m===p?d.circleRadius*=m:d.circleRadius=null)},i.update=function(d,m){m=(typeof m<"u"?m:1e3/60)*d.timeScale;var p=m*m,g=i._timeCorrection?m/(d.deltaTime||m):1,y=1-d.frictionAir*(m/l._baseDelta),v=(d.position.x-d.positionPrev.x)*g,T=(d.position.y-d.positionPrev.y)*g;d.velocity.x=v*y+d.force.x/d.mass*p,d.velocity.y=T*y+d.force.y/d.mass*p,d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.position.x+=d.velocity.x,d.position.y+=d.velocity.y,d.deltaTime=m,d.angularVelocity=(d.angle-d.anglePrev)*y*g+d.torque/d.inertia*p,d.anglePrev=d.angle,d.angle+=d.angularVelocity;for(var C=0;C<d.parts.length;C++){var E=d.parts[C];a.translate(E.vertices,d.velocity),C>0&&(E.position.x+=d.velocity.x,E.position.y+=d.velocity.y),d.angularVelocity!==0&&(a.rotate(E.vertices,d.angularVelocity,d.position),f.rotate(E.axes,d.angularVelocity),C>0&&o.rotateAbout(E.position,d.angularVelocity,d.position,E.position)),c.update(E.bounds,E.vertices,d.velocity)}},i.updateVelocities=function(d){var m=i._baseDelta/d.deltaTime,p=d.velocity;p.x=(d.position.x-d.positionPrev.x)*m,p.y=(d.position.y-d.positionPrev.y)*m,d.speed=Math.sqrt(p.x*p.x+p.y*p.y),d.angularVelocity=(d.angle-d.anglePrev)*m,d.angularSpeed=Math.abs(d.angularVelocity)},i.applyForce=function(d,m,p){var g={x:m.x-d.position.x,y:m.y-d.position.y};d.force.x+=p.x,d.force.y+=p.y,d.torque+=g.x*p.y-g.y*p.x},i._totalProperties=function(d){for(var m={mass:0,area:0,inertia:0,centre:{x:0,y:0}},p=d.parts.length===1?0:1;p<d.parts.length;p++){var g=d.parts[p],y=g.mass!==1/0?g.mass:1;m.mass+=y,m.area+=g.area,m.inertia+=g.inertia,m.centre=o.add(m.centre,o.mult(g.position,y))}return m.centre=o.div(m.centre,m.mass),m}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i.on=function(o,u,l){for(var c=u.split(" "),f,h=0;h<c.length;h++)f=c[h],o.events=o.events||{},o.events[f]=o.events[f]||[],o.events[f].push(l);return l},i.off=function(o,u,l){if(!u){o.events={};return}typeof u=="function"&&(l=u,u=a.keys(o.events).join(" "));for(var c=u.split(" "),f=0;f<c.length;f++){var h=o.events[c[f]],d=[];if(l&&h)for(var m=0;m<h.length;m++)h[m]!==l&&d.push(h[m]);o.events[c[f]]=d}},i.trigger=function(o,u,l){var c,f,h,d,m=o.events;if(m&&a.keys(m).length>0){l||(l={}),c=u.split(" ");for(var p=0;p<c.length;p++)if(f=c[p],h=m[f],h){d=a.clone(l,!1),d.name=f,d.source=o;for(var g=0;g<h.length;g++)h[g].apply(o,[d])}}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(5),o=s(0),u=s(1),l=s(4);(function(){i.create=function(c){return o.extend({id:o.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},c)},i.setModified=function(c,f,h,d){if(c.isModified=f,f&&c.cache&&(c.cache.allBodies=null,c.cache.allConstraints=null,c.cache.allComposites=null),h&&c.parent&&i.setModified(c.parent,f,h,d),d)for(var m=0;m<c.composites.length;m++){var p=c.composites[m];i.setModified(p,f,h,d)}},i.add=function(c,f){var h=[].concat(f);a.trigger(c,"beforeAdd",{object:f});for(var d=0;d<h.length;d++){var m=h[d];switch(m.type){case"body":if(m.parent!==m){o.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}i.addBody(c,m);break;case"constraint":i.addConstraint(c,m);break;case"composite":i.addComposite(c,m);break;case"mouseConstraint":i.addConstraint(c,m.constraint);break}}return a.trigger(c,"afterAdd",{object:f}),c},i.remove=function(c,f,h){var d=[].concat(f);a.trigger(c,"beforeRemove",{object:f});for(var m=0;m<d.length;m++){var p=d[m];switch(p.type){case"body":i.removeBody(c,p,h);break;case"constraint":i.removeConstraint(c,p,h);break;case"composite":i.removeComposite(c,p,h);break;case"mouseConstraint":i.removeConstraint(c,p.constraint);break}}return a.trigger(c,"afterRemove",{object:f}),c},i.addComposite=function(c,f){return c.composites.push(f),f.parent=c,i.setModified(c,!0,!0,!1),c},i.removeComposite=function(c,f,h){var d=o.indexOf(c.composites,f);if(d!==-1&&i.removeCompositeAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeComposite(c.composites[m],f,!0);return c},i.removeCompositeAt=function(c,f){return c.composites.splice(f,1),i.setModified(c,!0,!0,!1),c},i.addBody=function(c,f){return c.bodies.push(f),i.setModified(c,!0,!0,!1),c},i.removeBody=function(c,f,h){var d=o.indexOf(c.bodies,f);if(d!==-1&&i.removeBodyAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeBody(c.composites[m],f,!0);return c},i.removeBodyAt=function(c,f){return c.bodies.splice(f,1),i.setModified(c,!0,!0,!1),c},i.addConstraint=function(c,f){return c.constraints.push(f),i.setModified(c,!0,!0,!1),c},i.removeConstraint=function(c,f,h){var d=o.indexOf(c.constraints,f);if(d!==-1&&i.removeConstraintAt(c,d),h)for(var m=0;m<c.composites.length;m++)i.removeConstraint(c.composites[m],f,!0);return c},i.removeConstraintAt=function(c,f){return c.constraints.splice(f,1),i.setModified(c,!0,!0,!1),c},i.clear=function(c,f,h){if(h)for(var d=0;d<c.composites.length;d++)i.clear(c.composites[d],f,!0);return f?c.bodies=c.bodies.filter(function(m){return m.isStatic}):c.bodies.length=0,c.constraints.length=0,c.composites.length=0,i.setModified(c,!0,!0,!1),c},i.allBodies=function(c){if(c.cache&&c.cache.allBodies)return c.cache.allBodies;for(var f=[].concat(c.bodies),h=0;h<c.composites.length;h++)f=f.concat(i.allBodies(c.composites[h]));return c.cache&&(c.cache.allBodies=f),f},i.allConstraints=function(c){if(c.cache&&c.cache.allConstraints)return c.cache.allConstraints;for(var f=[].concat(c.constraints),h=0;h<c.composites.length;h++)f=f.concat(i.allConstraints(c.composites[h]));return c.cache&&(c.cache.allConstraints=f),f},i.allComposites=function(c){if(c.cache&&c.cache.allComposites)return c.cache.allComposites;for(var f=[].concat(c.composites),h=0;h<c.composites.length;h++)f=f.concat(i.allComposites(c.composites[h]));return c.cache&&(c.cache.allComposites=f),f},i.get=function(c,f,h){var d,m;switch(h){case"body":d=i.allBodies(c);break;case"constraint":d=i.allConstraints(c);break;case"composite":d=i.allComposites(c).concat(c);break}return d?(m=d.filter(function(p){return p.id.toString()===f.toString()}),m.length===0?null:m[0]):null},i.move=function(c,f,h){return i.remove(c,f),i.add(h,f),c},i.rebase=function(c){for(var f=i.allBodies(c).concat(i.allConstraints(c)).concat(i.allComposites(c)),h=0;h<f.length;h++)f[h].id=o.nextId();return c},i.translate=function(c,f,h){for(var d=h?i.allBodies(c):c.bodies,m=0;m<d.length;m++)l.translate(d[m],f);return c},i.rotate=function(c,f,h,d){for(var m=Math.cos(f),p=Math.sin(f),g=d?i.allBodies(c):c.bodies,y=0;y<g.length;y++){var v=g[y],T=v.position.x-h.x,C=v.position.y-h.y;l.setPosition(v,{x:h.x+(T*m-C*p),y:h.y+(T*p+C*m)}),l.rotate(v,f)}return c},i.scale=function(c,f,h,d,m){for(var p=m?i.allBodies(c):c.bodies,g=0;g<p.length;g++){var y=p[g],v=y.position.x-d.x,T=y.position.y-d.y;l.setPosition(y,{x:d.x+v*f,y:d.y+T*h}),l.scale(y,f,h)}return c},i.bounds=function(c){for(var f=i.allBodies(c),h=[],d=0;d<f.length;d+=1){var m=f[d];h.push(m.bounds.min,m.bounds.max)}return u.create(h)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(4),o=s(5),u=s(0);(function(){i._motionWakeThreshold=.18,i._motionSleepThreshold=.08,i._minBias=.9,i.update=function(l,c){for(var f=c/u._baseDelta,h=i._motionSleepThreshold,d=0;d<l.length;d++){var m=l[d],p=a.getSpeed(m),g=a.getAngularSpeed(m),y=p*p+g*g;if(m.force.x!==0||m.force.y!==0){i.set(m,!1);continue}var v=Math.min(m.motion,y),T=Math.max(m.motion,y);m.motion=i._minBias*v+(1-i._minBias)*T,m.sleepThreshold>0&&m.motion<h?(m.sleepCounter+=1,m.sleepCounter>=m.sleepThreshold/f&&i.set(m,!0)):m.sleepCounter>0&&(m.sleepCounter-=1)}},i.afterCollisions=function(l){for(var c=i._motionSleepThreshold,f=0;f<l.length;f++){var h=l[f];if(h.isActive){var d=h.collision,m=d.bodyA.parent,p=d.bodyB.parent;if(!(m.isSleeping&&p.isSleeping||m.isStatic||p.isStatic)&&(m.isSleeping||p.isSleeping)){var g=m.isSleeping&&!m.isStatic?m:p,y=g===m?p:m;!g.isStatic&&y.motion>c&&i.set(g,!1)}}}},i.set=function(l,c){var f=l.isSleeping;c?(l.isSleeping=!0,l.sleepCounter=l.sleepThreshold,l.positionImpulse.x=0,l.positionImpulse.y=0,l.positionPrev.x=l.position.x,l.positionPrev.y=l.position.y,l.anglePrev=l.angle,l.speed=0,l.angularSpeed=0,l.motion=0,f||o.trigger(l,"sleepStart")):(l.isSleeping=!1,l.sleepCounter=0,f&&o.trigger(l,"sleepEnd"))}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(9);(function(){var u=[],l={overlap:0,axis:null},c={overlap:0,axis:null};i.create=function(f,h){return{pair:null,collided:!1,bodyA:f,bodyB:h,parentA:f.parent,parentB:h.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},i.collides=function(f,h,d){if(i._overlapAxes(l,f.vertices,h.vertices,f.axes),l.overlap<=0||(i._overlapAxes(c,h.vertices,f.vertices,h.axes),c.overlap<=0))return null;var m=d&&d.table[o.id(f,h)],p;m?p=m.collision:(p=i.create(f,h),p.collided=!0,p.bodyA=f.id<h.id?f:h,p.bodyB=f.id<h.id?h:f,p.parentA=p.bodyA.parent,p.parentB=p.bodyB.parent),f=p.bodyA,h=p.bodyB;var g;l.overlap<c.overlap?g=l:g=c;var y=p.normal,v=p.supports,T=g.axis,C=T.x,E=T.y;C*(h.position.x-f.position.x)+E*(h.position.y-f.position.y)<0?(y.x=C,y.y=E):(y.x=-C,y.y=-E),p.tangent.x=-y.y,p.tangent.y=y.x,p.depth=g.overlap,p.penetration.x=y.x*p.depth,p.penetration.y=y.y*p.depth;var k=i._findSupports(f,h,y,1),_=0;if(a.contains(f.vertices,k[0])&&(v[_++]=k[0]),a.contains(f.vertices,k[1])&&(v[_++]=k[1]),_<2){var A=i._findSupports(h,f,y,-1);a.contains(h.vertices,A[0])&&(v[_++]=A[0]),_<2&&a.contains(h.vertices,A[1])&&(v[_++]=A[1])}return _===0&&(v[_++]=k[0]),v.length=_,p},i._overlapAxes=function(f,h,d,m){var p=h.length,g=d.length,y=h[0].x,v=h[0].y,T=d[0].x,C=d[0].y,E=m.length,k=Number.MAX_VALUE,_=0,A,I,S,M,N,j;for(N=0;N<E;N++){var P=m[N],L=P.x,F=P.y,V=y*L+v*F,B=T*L+C*F,q=V,R=B;for(j=1;j<p;j+=1)M=h[j].x*L+h[j].y*F,M>q?q=M:M<V&&(V=M);for(j=1;j<g;j+=1)M=d[j].x*L+d[j].y*F,M>R?R=M:M<B&&(B=M);if(I=q-B,S=R-V,A=I<S?I:S,A<k&&(k=A,_=N,A<=0))break}f.axis=m[_],f.overlap=k},i._projectToAxis=function(f,h,d){for(var m=h[0].x*d.x+h[0].y*d.y,p=m,g=1;g<h.length;g+=1){var y=h[g].x*d.x+h[g].y*d.y;y>p?p=y:y<m&&(m=y)}f.min=m,f.max=p},i._findSupports=function(f,h,d,m){var p=h.vertices,g=p.length,y=f.position.x,v=f.position.y,T=d.x*m,C=d.y*m,E=Number.MAX_VALUE,k,_,A,I,S;for(S=0;S<g;S+=1)_=p[S],I=T*(y-_.x)+C*(v-_.y),I<E&&(E=I,k=_);return A=p[(g+k.index-1)%g],E=T*(y-A.x)+C*(v-A.y),_=p[(k.index+1)%g],T*(y-_.x)+C*(v-_.y)<E?(u[0]=k,u[1]=_,u):(u[0]=k,u[1]=A,u)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(16);(function(){i.create=function(o,u){var l=o.bodyA,c=o.bodyB,f={id:i.id(l,c),bodyA:l,bodyB:c,collision:o,contacts:[],activeContacts:[],separation:0,isActive:!0,confirmedActive:!0,isSensor:l.isSensor||c.isSensor,timeCreated:u,timeUpdated:u,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return i.update(f,o,u),f},i.update=function(o,u,l){var c=o.contacts,f=u.supports,h=o.activeContacts,d=u.parentA,m=u.parentB,p=d.vertices.length;o.isActive=!0,o.timeUpdated=l,o.collision=u,o.separation=u.depth,o.inverseMass=d.inverseMass+m.inverseMass,o.friction=d.friction<m.friction?d.friction:m.friction,o.frictionStatic=d.frictionStatic>m.frictionStatic?d.frictionStatic:m.frictionStatic,o.restitution=d.restitution>m.restitution?d.restitution:m.restitution,o.slop=d.slop>m.slop?d.slop:m.slop,u.pair=o,h.length=0;for(var g=0;g<f.length;g++){var y=f[g],v=y.body===d?y.index:p+y.index,T=c[v];T?h.push(T):h.push(c[v]=a.create(y))}},i.setActive=function(o,u,l){u?(o.isActive=!0,o.timeUpdated=l):(o.isActive=!1,o.activeContacts.length=0)},i.id=function(o,u){return o.id<u.id?"A"+o.id+"B"+u.id:"A"+u.id+"B"+o.id}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(2),u=s(7),l=s(1),c=s(11),f=s(0);(function(){i._warming=.4,i._torqueDampen=1,i._minLength=1e-6,i.create=function(h){var d=h;d.bodyA&&!d.pointA&&(d.pointA={x:0,y:0}),d.bodyB&&!d.pointB&&(d.pointB={x:0,y:0});var m=d.bodyA?o.add(d.bodyA.position,d.pointA):d.pointA,p=d.bodyB?o.add(d.bodyB.position,d.pointB):d.pointB,g=o.magnitude(o.sub(m,p));d.length=typeof d.length<"u"?d.length:g,d.id=d.id||f.nextId(),d.label=d.label||"Constraint",d.type="constraint",d.stiffness=d.stiffness||(d.length>0?1:.7),d.damping=d.damping||0,d.angularStiffness=d.angularStiffness||0,d.angleA=d.bodyA?d.bodyA.angle:d.angleA,d.angleB=d.bodyB?d.bodyB.angle:d.angleB,d.plugin={};var y={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return d.length===0&&d.stiffness>.1?(y.type="pin",y.anchors=!1):d.stiffness<.9&&(y.type="spring"),d.render=f.extend(y,d.render),d},i.preSolveAll=function(h){for(var d=0;d<h.length;d+=1){var m=h[d],p=m.constraintImpulse;m.isStatic||p.x===0&&p.y===0&&p.angle===0||(m.position.x+=p.x,m.position.y+=p.y,m.angle+=p.angle)}},i.solveAll=function(h,d){for(var m=f.clamp(d/f._baseDelta,0,1),p=0;p<h.length;p+=1){var g=h[p],y=!g.bodyA||g.bodyA&&g.bodyA.isStatic,v=!g.bodyB||g.bodyB&&g.bodyB.isStatic;(y||v)&&i.solve(h[p],m)}for(p=0;p<h.length;p+=1)g=h[p],y=!g.bodyA||g.bodyA&&g.bodyA.isStatic,v=!g.bodyB||g.bodyB&&g.bodyB.isStatic,!y&&!v&&i.solve(h[p],m)},i.solve=function(h,d){var m=h.bodyA,p=h.bodyB,g=h.pointA,y=h.pointB;if(!(!m&&!p)){m&&!m.isStatic&&(o.rotate(g,m.angle-h.angleA,g),h.angleA=m.angle),p&&!p.isStatic&&(o.rotate(y,p.angle-h.angleB,y),h.angleB=p.angle);var v=g,T=y;if(m&&(v=o.add(m.position,g)),p&&(T=o.add(p.position,y)),!(!v||!T)){var C=o.sub(v,T),E=o.magnitude(C);E<i._minLength&&(E=i._minLength);var k=(E-h.length)/E,_=h.stiffness>=1||h.length===0,A=_?h.stiffness*d:h.stiffness*d*d,I=h.damping*d,S=o.mult(C,k*A),M=(m?m.inverseMass:0)+(p?p.inverseMass:0),N=(m?m.inverseInertia:0)+(p?p.inverseInertia:0),j=M+N,P,L,F,V,B;if(I>0){var q=o.create();F=o.div(C,E),B=o.sub(p&&o.sub(p.position,p.positionPrev)||q,m&&o.sub(m.position,m.positionPrev)||q),V=o.dot(F,B)}m&&!m.isStatic&&(L=m.inverseMass/M,m.constraintImpulse.x-=S.x*L,m.constraintImpulse.y-=S.y*L,m.position.x-=S.x*L,m.position.y-=S.y*L,I>0&&(m.positionPrev.x-=I*F.x*V*L,m.positionPrev.y-=I*F.y*V*L),P=o.cross(g,S)/j*i._torqueDampen*m.inverseInertia*(1-h.angularStiffness),m.constraintImpulse.angle-=P,m.angle-=P),p&&!p.isStatic&&(L=p.inverseMass/M,p.constraintImpulse.x+=S.x*L,p.constraintImpulse.y+=S.y*L,p.position.x+=S.x*L,p.position.y+=S.y*L,I>0&&(p.positionPrev.x+=I*F.x*V*L,p.positionPrev.y+=I*F.y*V*L),P=o.cross(y,S)/j*i._torqueDampen*p.inverseInertia*(1-h.angularStiffness),p.constraintImpulse.angle+=P,p.angle+=P)}}},i.postSolveAll=function(h){for(var d=0;d<h.length;d++){var m=h[d],p=m.constraintImpulse;if(!(m.isStatic||p.x===0&&p.y===0&&p.angle===0)){u.set(m,!1);for(var g=0;g<m.parts.length;g++){var y=m.parts[g];a.translate(y.vertices,p),g>0&&(y.position.x+=p.x,y.position.y+=p.y),p.angle!==0&&(a.rotate(y.vertices,p.angle,m.position),c.rotate(y.axes,p.angle),g>0&&o.rotateAbout(y.position,p.angle,m.position,y.position)),l.update(y.bounds,y.vertices,m.velocity)}p.angle*=i._warming,p.x*=i._warming,p.y*=i._warming}}},i.pointAWorld=function(h){return{x:(h.bodyA?h.bodyA.position.x:0)+(h.pointA?h.pointA.x:0),y:(h.bodyA?h.bodyA.position.y:0)+(h.pointA?h.pointA.y:0)}},i.pointBWorld=function(h){return{x:(h.bodyB?h.bodyB.position.x:0)+(h.pointB?h.pointB.x:0),y:(h.bodyB?h.bodyB.position.y:0)+(h.pointB?h.pointB.y:0)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(0);(function(){i.fromVertices=function(u){for(var l={},c=0;c<u.length;c++){var f=(c+1)%u.length,h=a.normalise({x:u[f].y-u[c].y,y:u[c].x-u[f].x}),d=h.y===0?1/0:h.x/h.y;d=d.toFixed(3).toString(),l[d]=h}return o.values(l)},i.rotate=function(u,l){if(l!==0)for(var c=Math.cos(l),f=Math.sin(l),h=0;h<u.length;h++){var d=u[h],m;m=d.x*c-d.y*f,d.y=d.x*f+d.y*c,d.x=m}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(0),u=s(4),l=s(1),c=s(2);(function(){i.rectangle=function(f,h,d,m,p){p=p||{};var g={label:"Rectangle Body",position:{x:f,y:h},vertices:a.fromPath("L 0 0 L "+d+" 0 L "+d+" "+m+" L 0 "+m)};if(p.chamfer){var y=p.chamfer;g.vertices=a.chamfer(g.vertices,y.radius,y.quality,y.qualityMin,y.qualityMax),delete p.chamfer}return u.create(o.extend({},g,p))},i.trapezoid=function(f,h,d,m,p,g){g=g||{},p*=.5;var y=(1-p*2)*d,v=d*p,T=v+y,C=T+v,E;p<.5?E="L 0 0 L "+v+" "+-m+" L "+T+" "+-m+" L "+C+" 0":E="L 0 0 L "+T+" "+-m+" L "+C+" 0";var k={label:"Trapezoid Body",position:{x:f,y:h},vertices:a.fromPath(E)};if(g.chamfer){var _=g.chamfer;k.vertices=a.chamfer(k.vertices,_.radius,_.quality,_.qualityMin,_.qualityMax),delete g.chamfer}return u.create(o.extend({},k,g))},i.circle=function(f,h,d,m,p){m=m||{};var g={label:"Circle Body",circleRadius:d};p=p||25;var y=Math.ceil(Math.max(10,Math.min(p,d)));return y%2===1&&(y+=1),i.polygon(f,h,y,d,o.extend({},g,m))},i.polygon=function(f,h,d,m,p){if(p=p||{},d<3)return i.circle(f,h,m,p);for(var g=2*Math.PI/d,y="",v=g*.5,T=0;T<d;T+=1){var C=v+T*g,E=Math.cos(C)*m,k=Math.sin(C)*m;y+="L "+E.toFixed(3)+" "+k.toFixed(3)+" "}var _={label:"Polygon Body",position:{x:f,y:h},vertices:a.fromPath(y)};if(p.chamfer){var A=p.chamfer;_.vertices=a.chamfer(_.vertices,A.radius,A.quality,A.qualityMin,A.qualityMax),delete p.chamfer}return u.create(o.extend({},_,p))},i.fromVertices=function(f,h,d,m,p,g,y,v){var T=o.getDecomp(),C,E,k,_,A,I,S,M,N,j,P;for(C=!!(T&&T.quickDecomp),m=m||{},k=[],p=typeof p<"u"?p:!1,g=typeof g<"u"?g:.01,y=typeof y<"u"?y:10,v=typeof v<"u"?v:.01,o.isArray(d[0])||(d=[d]),j=0;j<d.length;j+=1)if(I=d[j],_=a.isConvex(I),A=!_,A&&!C&&o.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."),_||!C)_?I=a.clockwiseSort(I):I=a.hull(I),k.push({position:{x:f,y:h},vertices:I});else{var L=I.map(function(z){return[z.x,z.y]});T.makeCCW(L),g!==!1&&T.removeCollinearPoints(L,g),v!==!1&&T.removeDuplicatePoints&&T.removeDuplicatePoints(L,v);var F=T.quickDecomp(L);for(S=0;S<F.length;S++){var V=F[S],B=V.map(function(z){return{x:z[0],y:z[1]}});y>0&&a.area(B)<y||k.push({position:a.centre(B),vertices:B})}}for(S=0;S<k.length;S++)k[S]=u.create(o.extend(k[S],m));if(p){var q=5;for(S=0;S<k.length;S++){var R=k[S];for(M=S+1;M<k.length;M++){var $=k[M];if(l.overlaps(R.bounds,$.bounds)){var K=R.vertices,D=$.vertices;for(N=0;N<R.vertices.length;N++)for(P=0;P<$.vertices.length;P++){var Z=c.magnitudeSquared(c.sub(K[(N+1)%K.length],D[P])),oe=c.magnitudeSquared(c.sub(K[N],D[(P+1)%D.length]));Z<q&&oe<q&&(K[N].isInternal=!0,D[P].isInternal=!0)}}}}}return k.length>1?(E=u.create(o.extend({parts:k.slice(0)},m)),u.setPosition(E,{x:f,y:h}),E):k[0]}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0),o=s(8);(function(){i.create=function(u){var l={bodies:[],pairs:null};return a.extend(l,u)},i.setBodies=function(u,l){u.bodies=l.slice(0)},i.clear=function(u){u.bodies=[]},i.collisions=function(u){var l=[],c=u.pairs,f=u.bodies,h=f.length,d=i.canCollide,m=o.collides,p,g;for(f.sort(i._compareBoundsX),p=0;p<h;p++){var y=f[p],v=y.bounds,T=y.bounds.max.x,C=y.bounds.max.y,E=y.bounds.min.y,k=y.isStatic||y.isSleeping,_=y.parts.length,A=_===1;for(g=p+1;g<h;g++){var I=f[g],S=I.bounds;if(S.min.x>T)break;if(!(C<S.min.y||E>S.max.y)&&!(k&&(I.isStatic||I.isSleeping))&&d(y.collisionFilter,I.collisionFilter)){var M=I.parts.length;if(A&&M===1){var N=m(y,I,c);N&&l.push(N)}else for(var j=_>1?1:0,P=M>1?1:0,L=j;L<_;L++)for(var F=y.parts[L],v=F.bounds,V=P;V<M;V++){var B=I.parts[V],S=B.bounds;if(!(v.min.x>S.max.x||v.max.x<S.min.x||v.max.y<S.min.y||v.min.y>S.max.y)){var N=m(F,B,c);N&&l.push(N)}}}}}return l},i.canCollide=function(u,l){return u.group===l.group&&u.group!==0?u.group>0:(u.mask&l.category)!==0&&(l.mask&u.category)!==0},i._compareBoundsX=function(u,l){return u.bounds.min.x-l.bounds.min.x}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i.create=function(o){var u={};return o||a.log("Mouse.create: element was undefined, defaulting to document.body","warn"),u.element=o||document.body,u.absolute={x:0,y:0},u.position={x:0,y:0},u.mousedownPosition={x:0,y:0},u.mouseupPosition={x:0,y:0},u.offset={x:0,y:0},u.scale={x:1,y:1},u.wheelDelta=0,u.button=-1,u.pixelRatio=parseInt(u.element.getAttribute("data-pixel-ratio"),10)||1,u.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},u.mousemove=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f&&(u.button=0,l.preventDefault()),u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.sourceEvents.mousemove=l},u.mousedown=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f?(u.button=0,l.preventDefault()):u.button=l.button,u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.mousedownPosition.x=u.position.x,u.mousedownPosition.y=u.position.y,u.sourceEvents.mousedown=l},u.mouseup=function(l){var c=i._getRelativeMousePosition(l,u.element,u.pixelRatio),f=l.changedTouches;f&&l.preventDefault(),u.button=-1,u.absolute.x=c.x,u.absolute.y=c.y,u.position.x=u.absolute.x*u.scale.x+u.offset.x,u.position.y=u.absolute.y*u.scale.y+u.offset.y,u.mouseupPosition.x=u.position.x,u.mouseupPosition.y=u.position.y,u.sourceEvents.mouseup=l},u.mousewheel=function(l){u.wheelDelta=Math.max(-1,Math.min(1,l.wheelDelta||-l.detail)),l.preventDefault()},i.setElement(u,u.element),u},i.setElement=function(o,u){o.element=u,u.addEventListener("mousemove",o.mousemove),u.addEventListener("mousedown",o.mousedown),u.addEventListener("mouseup",o.mouseup),u.addEventListener("mousewheel",o.mousewheel),u.addEventListener("DOMMouseScroll",o.mousewheel),u.addEventListener("touchmove",o.mousemove),u.addEventListener("touchstart",o.mousedown),u.addEventListener("touchend",o.mouseup)},i.clearSourceEvents=function(o){o.sourceEvents.mousemove=null,o.sourceEvents.mousedown=null,o.sourceEvents.mouseup=null,o.sourceEvents.mousewheel=null,o.wheelDelta=0},i.setOffset=function(o,u){o.offset.x=u.x,o.offset.y=u.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},i.setScale=function(o,u){o.scale.x=u.x,o.scale.y=u.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},i._getRelativeMousePosition=function(o,u,l){var c=u.getBoundingClientRect(),f=document.documentElement||document.body.parentNode||document.body,h=window.pageXOffset!==void 0?window.pageXOffset:f.scrollLeft,d=window.pageYOffset!==void 0?window.pageYOffset:f.scrollTop,m=o.changedTouches,p,g;return m?(p=m[0].pageX-c.left-h,g=m[0].pageY-c.top-d):(p=o.pageX-c.left-h,g=o.pageY-c.top-d),{x:p/(u.clientWidth/(u.width||u.clientWidth)*l),y:g/(u.clientHeight/(u.height||u.clientHeight)*l)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(0);(function(){i._registry={},i.register=function(o){if(i.isPlugin(o)||a.warn("Plugin.register:",i.toString(o),"does not implement all required fields."),o.name in i._registry){var u=i._registry[o.name],l=i.versionParse(o.version).number,c=i.versionParse(u.version).number;l>c?(a.warn("Plugin.register:",i.toString(u),"was upgraded to",i.toString(o)),i._registry[o.name]=o):l<c?a.warn("Plugin.register:",i.toString(u),"can not be downgraded to",i.toString(o)):o!==u&&a.warn("Plugin.register:",i.toString(o),"is already registered to different plugin object")}else i._registry[o.name]=o;return o},i.resolve=function(o){return i._registry[i.dependencyParse(o).name]},i.toString=function(o){return typeof o=="string"?o:(o.name||"anonymous")+"@"+(o.version||o.range||"0.0.0")},i.isPlugin=function(o){return o&&o.name&&o.version&&o.install},i.isUsed=function(o,u){return o.used.indexOf(u)>-1},i.isFor=function(o,u){var l=o.for&&i.dependencyParse(o.for);return!o.for||u.name===l.name&&i.versionSatisfies(u.version,l.range)},i.use=function(o,u){if(o.uses=(o.uses||[]).concat(u||[]),o.uses.length===0){a.warn("Plugin.use:",i.toString(o),"does not specify any dependencies to install.");return}for(var l=i.dependencies(o),c=a.topologicalSort(l),f=[],h=0;h<c.length;h+=1)if(c[h]!==o.name){var d=i.resolve(c[h]);if(!d){f.push("❌ "+c[h]);continue}i.isUsed(o,d.name)||(i.isFor(d,o)||(a.warn("Plugin.use:",i.toString(d),"is for",d.for,"but installed on",i.toString(o)+"."),d._warned=!0),d.install?d.install(o):(a.warn("Plugin.use:",i.toString(d),"does not specify an install function."),d._warned=!0),d._warned?(f.push("🔶 "+i.toString(d)),delete d._warned):f.push("✅ "+i.toString(d)),o.used.push(d.name))}f.length>0&&a.info(f.join(" "))},i.dependencies=function(o,u){var l=i.dependencyParse(o),c=l.name;if(u=u||{},!(c in u)){o=i.resolve(o)||o,u[c]=a.map(o.uses||[],function(h){i.isPlugin(h)&&i.register(h);var d=i.dependencyParse(h),m=i.resolve(h);return m&&!i.versionSatisfies(m.version,d.range)?(a.warn("Plugin.dependencies:",i.toString(m),"does not satisfy",i.toString(d),"used by",i.toString(l)+"."),m._warned=!0,o._warned=!0):m||(a.warn("Plugin.dependencies:",i.toString(h),"used by",i.toString(l),"could not be resolved."),o._warned=!0),d.name});for(var f=0;f<u[c].length;f+=1)i.dependencies(u[c][f],u);return u}},i.dependencyParse=function(o){if(a.isString(o)){var u=/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/;return u.test(o)||a.warn("Plugin.dependencyParse:",o,"is not a valid dependency string."),{name:o.split("@")[0],range:o.split("@")[1]||"*"}}return{name:o.name,range:o.range||o.version}},i.versionParse=function(o){var u=/^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;u.test(o)||a.warn("Plugin.versionParse:",o,"is not a valid version or range.");var l=u.exec(o),c=Number(l[4]),f=Number(l[5]),h=Number(l[6]);return{isRange:!!(l[1]||l[2]),version:l[3],range:o,operator:l[1]||l[2]||"",major:c,minor:f,patch:h,parts:[c,f,h],prerelease:l[7],number:c*1e8+f*1e4+h}},i.versionSatisfies=function(o,u){u=u||"*";var l=i.versionParse(u),c=i.versionParse(o);if(l.isRange){if(l.operator==="*"||o==="*")return!0;if(l.operator===">")return c.number>l.number;if(l.operator===">=")return c.number>=l.number;if(l.operator==="~")return c.major===l.major&&c.minor===l.minor&&c.patch>=l.patch;if(l.operator==="^")return l.major>0?c.major===l.major&&c.number>=l.number:l.minor>0?c.minor===l.minor&&c.patch>=l.patch:c.patch===l.patch}return o===u||o==="*"}})()}),(function(n,r){var s={};n.exports=s,(function(){s.create=function(i){return{vertex:i,normalImpulse:0,tangentImpulse:0}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(7),o=s(18),u=s(13),l=s(19),c=s(5),f=s(6),h=s(10),d=s(0),m=s(4);(function(){i.create=function(p){p=p||{};var g={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},y=d.extend(g,p);return y.world=p.world||f.create({label:"World"}),y.pairs=p.pairs||l.create(),y.detector=p.detector||u.create(),y.grid={buckets:[]},y.world.gravity=y.gravity,y.broadphase=y.grid,y.metrics={},y},i.update=function(p,g){var y=d.now(),v=p.world,T=p.detector,C=p.pairs,E=p.timing,k=E.timestamp,_;g=typeof g<"u"?g:d._baseDelta,g*=E.timeScale,E.timestamp+=g,E.lastDelta=g;var A={timestamp:E.timestamp,delta:g};c.trigger(p,"beforeUpdate",A);var I=f.allBodies(v),S=f.allConstraints(v);for(v.isModified&&(u.setBodies(T,I),f.setModified(v,!1,!1,!0)),p.enableSleeping&&a.update(I,g),i._bodiesApplyGravity(I,p.gravity),g>0&&i._bodiesUpdate(I,g),h.preSolveAll(I),_=0;_<p.constraintIterations;_++)h.solveAll(S,g);h.postSolveAll(I),T.pairs=p.pairs;var M=u.collisions(T);l.update(C,M,k),p.enableSleeping&&a.afterCollisions(C.list),C.collisionStart.length>0&&c.trigger(p,"collisionStart",{pairs:C.collisionStart});var N=d.clamp(20/p.positionIterations,0,1);for(o.preSolvePosition(C.list),_=0;_<p.positionIterations;_++)o.solvePosition(C.list,g,N);for(o.postSolvePosition(I),h.preSolveAll(I),_=0;_<p.constraintIterations;_++)h.solveAll(S,g);for(h.postSolveAll(I),o.preSolveVelocity(C.list),_=0;_<p.velocityIterations;_++)o.solveVelocity(C.list,g);return i._bodiesUpdateVelocities(I),C.collisionActive.length>0&&c.trigger(p,"collisionActive",{pairs:C.collisionActive}),C.collisionEnd.length>0&&c.trigger(p,"collisionEnd",{pairs:C.collisionEnd}),i._bodiesClearForces(I),c.trigger(p,"afterUpdate",A),p.timing.lastElapsed=d.now()-y,p},i.merge=function(p,g){if(d.extend(p,g),g.world){p.world=g.world,i.clear(p);for(var y=f.allBodies(p.world),v=0;v<y.length;v++){var T=y[v];a.set(T,!1),T.id=d.nextId()}}},i.clear=function(p){l.clear(p.pairs),u.clear(p.detector)},i._bodiesClearForces=function(p){for(var g=p.length,y=0;y<g;y++){var v=p[y];v.force.x=0,v.force.y=0,v.torque=0}},i._bodiesApplyGravity=function(p,g){var y=typeof g.scale<"u"?g.scale:.001,v=p.length;if(!(g.x===0&&g.y===0||y===0))for(var T=0;T<v;T++){var C=p[T];C.isStatic||C.isSleeping||(C.force.y+=C.mass*g.y*y,C.force.x+=C.mass*g.x*y)}},i._bodiesUpdate=function(p,g){for(var y=p.length,v=0;v<y;v++){var T=p[v];T.isStatic||T.isSleeping||m.update(T,g)}},i._bodiesUpdateVelocities=function(p){for(var g=p.length,y=0;y<g;y++)m.updateVelocities(p[y])}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(0),u=s(1);(function(){i._restingThresh=2,i._restingThreshTangent=Math.sqrt(6),i._positionDampen=.9,i._positionWarming=.8,i._frictionNormalMultiplier=5,i._frictionMaxStatic=Number.MAX_VALUE,i.preSolvePosition=function(l){var c,f,h,d=l.length;for(c=0;c<d;c++)f=l[c],f.isActive&&(h=f.activeContacts.length,f.collision.parentA.totalContacts+=h,f.collision.parentB.totalContacts+=h)},i.solvePosition=function(l,c,f){var h,d,m,p,g,y,v,T,C=i._positionDampen*(f||1),E=o.clamp(c/o._baseDelta,0,1),k=l.length;for(h=0;h<k;h++)d=l[h],!(!d.isActive||d.isSensor)&&(m=d.collision,p=m.parentA,g=m.parentB,y=m.normal,d.separation=y.x*(g.positionImpulse.x+m.penetration.x-p.positionImpulse.x)+y.y*(g.positionImpulse.y+m.penetration.y-p.positionImpulse.y));for(h=0;h<k;h++)d=l[h],!(!d.isActive||d.isSensor)&&(m=d.collision,p=m.parentA,g=m.parentB,y=m.normal,T=d.separation-d.slop*E,(p.isStatic||g.isStatic)&&(T*=2),p.isStatic||p.isSleeping||(v=C/p.totalContacts,p.positionImpulse.x+=y.x*T*v,p.positionImpulse.y+=y.y*T*v),g.isStatic||g.isSleeping||(v=C/g.totalContacts,g.positionImpulse.x-=y.x*T*v,g.positionImpulse.y-=y.y*T*v))},i.postSolvePosition=function(l){for(var c=i._positionWarming,f=l.length,h=a.translate,d=u.update,m=0;m<f;m++){var p=l[m],g=p.positionImpulse,y=g.x,v=g.y,T=p.velocity;if(p.totalContacts=0,y!==0||v!==0){for(var C=0;C<p.parts.length;C++){var E=p.parts[C];h(E.vertices,g),d(E.bounds,E.vertices,T),E.position.x+=y,E.position.y+=v}p.positionPrev.x+=y,p.positionPrev.y+=v,y*T.x+v*T.y<0?(g.x=0,g.y=0):(g.x*=c,g.y*=c)}}},i.preSolveVelocity=function(l){var c=l.length,f,h;for(f=0;f<c;f++){var d=l[f];if(!(!d.isActive||d.isSensor)){var m=d.activeContacts,p=m.length,g=d.collision,y=g.parentA,v=g.parentB,T=g.normal,C=g.tangent;for(h=0;h<p;h++){var E=m[h],k=E.vertex,_=E.normalImpulse,A=E.tangentImpulse;if(_!==0||A!==0){var I=T.x*_+C.x*A,S=T.y*_+C.y*A;y.isStatic||y.isSleeping||(y.positionPrev.x+=I*y.inverseMass,y.positionPrev.y+=S*y.inverseMass,y.anglePrev+=y.inverseInertia*((k.x-y.position.x)*S-(k.y-y.position.y)*I)),v.isStatic||v.isSleeping||(v.positionPrev.x-=I*v.inverseMass,v.positionPrev.y-=S*v.inverseMass,v.anglePrev-=v.inverseInertia*((k.x-v.position.x)*S-(k.y-v.position.y)*I))}}}}},i.solveVelocity=function(l,c){var f=c/o._baseDelta,h=f*f,d=h*f,m=-i._restingThresh*f,p=i._restingThreshTangent,g=i._frictionNormalMultiplier*f,y=i._frictionMaxStatic,v=l.length,T,C,E,k;for(E=0;E<v;E++){var _=l[E];if(!(!_.isActive||_.isSensor)){var A=_.collision,I=A.parentA,S=A.parentB,M=I.velocity,N=S.velocity,j=A.normal.x,P=A.normal.y,L=A.tangent.x,F=A.tangent.y,V=_.activeContacts,B=V.length,q=1/B,R=I.inverseMass+S.inverseMass,$=_.friction*_.frictionStatic*g;for(M.x=I.position.x-I.positionPrev.x,M.y=I.position.y-I.positionPrev.y,N.x=S.position.x-S.positionPrev.x,N.y=S.position.y-S.positionPrev.y,I.angularVelocity=I.angle-I.anglePrev,S.angularVelocity=S.angle-S.anglePrev,k=0;k<B;k++){var K=V[k],D=K.vertex,Z=D.x-I.position.x,oe=D.y-I.position.y,z=D.x-S.position.x,J=D.y-S.position.y,X=M.x-oe*I.angularVelocity,ce=M.y+Z*I.angularVelocity,he=N.x-J*S.angularVelocity,re=N.y+z*S.angularVelocity,ne=X-he,xe=ce-re,ve=j*ne+P*xe,Le=L*ne+F*xe,Be=_.separation+ve,Ee=Math.min(Be,1);Ee=Be<0?0:Ee;var Oe=Ee*$;Le<-Oe||Le>Oe?(C=Le>0?Le:-Le,T=_.friction*(Le>0?1:-1)*d,T<-C?T=-C:T>C&&(T=C)):(T=Le,C=y);var te=Z*P-oe*j,Ie=z*P-J*j,be=q/(R+I.inverseInertia*te*te+S.inverseInertia*Ie*Ie),ze=(1+_.restitution)*ve*be;if(T*=be,ve<m)K.normalImpulse=0;else{var rt=K.normalImpulse;K.normalImpulse+=ze,K.normalImpulse>0&&(K.normalImpulse=0),ze=K.normalImpulse-rt}if(Le<-p||Le>p)K.tangentImpulse=0;else{var Me=K.tangentImpulse;K.tangentImpulse+=T,K.tangentImpulse<-C&&(K.tangentImpulse=-C),K.tangentImpulse>C&&(K.tangentImpulse=C),T=K.tangentImpulse-Me}var Xe=j*ze+L*T,G=P*ze+F*T;I.isStatic||I.isSleeping||(I.positionPrev.x+=Xe*I.inverseMass,I.positionPrev.y+=G*I.inverseMass,I.anglePrev+=(Z*G-oe*Xe)*I.inverseInertia),S.isStatic||S.isSleeping||(S.positionPrev.x-=Xe*S.inverseMass,S.positionPrev.y-=G*S.inverseMass,S.anglePrev-=(z*G-J*Xe)*S.inverseInertia)}}}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(9),o=s(0);(function(){i.create=function(u){return o.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},u)},i.update=function(u,l,c){var f=u.list,h=f.length,d=u.table,m=l.length,p=u.collisionStart,g=u.collisionEnd,y=u.collisionActive,v,T,C,E;for(p.length=0,g.length=0,y.length=0,E=0;E<h;E++)f[E].confirmedActive=!1;for(E=0;E<m;E++)v=l[E],C=v.pair,C?(C.isActive?y.push(C):p.push(C),a.update(C,v,c),C.confirmedActive=!0):(C=a.create(v,c),d[C.id]=C,p.push(C),f.push(C));var k=[];for(h=f.length,E=0;E<h;E++)C=f[E],C.confirmedActive||(a.setActive(C,!1,c),g.push(C),!C.collision.bodyA.isSleeping&&!C.collision.bodyB.isSleeping&&k.push(E));for(E=0;E<k.length;E++)T=k[E]-E,C=f[T],f.splice(T,1),delete d[C.id]},i.clear=function(u){return u.table={},u.list.length=0,u.collisionStart.length=0,u.collisionActive.length=0,u.collisionEnd.length=0,u}})()}),(function(n,r,s){var i=n.exports=s(21);i.Axes=s(11),i.Bodies=s(12),i.Body=s(4),i.Bounds=s(1),i.Collision=s(8),i.Common=s(0),i.Composite=s(6),i.Composites=s(22),i.Constraint=s(10),i.Contact=s(16),i.Detector=s(13),i.Engine=s(17),i.Events=s(5),i.Grid=s(23),i.Mouse=s(14),i.MouseConstraint=s(24),i.Pair=s(9),i.Pairs=s(19),i.Plugin=s(15),i.Query=s(25),i.Render=s(26),i.Resolver=s(18),i.Runner=s(27),i.SAT=s(28),i.Sleeping=s(7),i.Svg=s(29),i.Vector=s(2),i.Vertices=s(3),i.World=s(30),i.Engine.run=i.Runner.run,i.Common.deprecated(i.Engine,"run","Engine.run ➤ use Matter.Runner.run(engine) instead")}),(function(n,r,s){var i={};n.exports=i;var a=s(15),o=s(0);(function(){i.name="matter-js",i.version="0.19.0",i.uses=[],i.used=[],i.use=function(){a.use(i,Array.prototype.slice.call(arguments))},i.before=function(u,l){return u=u.replace(/^Matter./,""),o.chainPathBefore(i,u,l)},i.after=function(u,l){return u=u.replace(/^Matter./,""),o.chainPathAfter(i,u,l)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(6),o=s(10),u=s(0),l=s(4),c=s(12),f=u.deprecated;(function(){i.stack=function(h,d,m,p,g,y,v){for(var T=a.create({label:"Stack"}),C=h,E=d,k,_=0,A=0;A<p;A++){for(var I=0,S=0;S<m;S++){var M=v(C,E,S,A,k,_);if(M){var N=M.bounds.max.y-M.bounds.min.y,j=M.bounds.max.x-M.bounds.min.x;N>I&&(I=N),l.translate(M,{x:j*.5,y:N*.5}),C=M.bounds.max.x+g,a.addBody(T,M),k=M,_+=1}else C+=g}E+=I+y,C=h}return T},i.chain=function(h,d,m,p,g,y){for(var v=h.bodies,T=1;T<v.length;T++){var C=v[T-1],E=v[T],k=C.bounds.max.y-C.bounds.min.y,_=C.bounds.max.x-C.bounds.min.x,A=E.bounds.max.y-E.bounds.min.y,I=E.bounds.max.x-E.bounds.min.x,S={bodyA:C,pointA:{x:_*d,y:k*m},bodyB:E,pointB:{x:I*p,y:A*g}},M=u.extend(S,y);a.addConstraint(h,o.create(M))}return h.label+=" Chain",h},i.mesh=function(h,d,m,p,g){var y=h.bodies,v,T,C,E,k;for(v=0;v<m;v++){for(T=1;T<d;T++)C=y[T-1+v*d],E=y[T+v*d],a.addConstraint(h,o.create(u.extend({bodyA:C,bodyB:E},g)));if(v>0)for(T=0;T<d;T++)C=y[T+(v-1)*d],E=y[T+v*d],a.addConstraint(h,o.create(u.extend({bodyA:C,bodyB:E},g))),p&&T>0&&(k=y[T-1+(v-1)*d],a.addConstraint(h,o.create(u.extend({bodyA:k,bodyB:E},g)))),p&&T<d-1&&(k=y[T+1+(v-1)*d],a.addConstraint(h,o.create(u.extend({bodyA:k,bodyB:E},g))))}return h.label+=" Mesh",h},i.pyramid=function(h,d,m,p,g,y,v){return i.stack(h,d,m,p,g,y,function(T,C,E,k,_,A){var I=Math.min(p,Math.ceil(m/2)),S=_?_.bounds.max.x-_.bounds.min.x:0;if(!(k>I)){k=I-k;var M=k,N=m-1-k;if(!(E<M||E>N)){A===1&&l.translate(_,{x:(E+(m%2===1?1:-1))*S,y:0});var j=_?E*S:0;return v(h+j+E*g,C,E,k,_,A)}}})},i.newtonsCradle=function(h,d,m,p,g){for(var y=a.create({label:"Newtons Cradle"}),v=0;v<m;v++){var T=1.9,C=c.circle(h+v*(p*T),d+g,p,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),E=o.create({pointA:{x:h+v*(p*T),y:d},bodyB:C});a.addBody(y,C),a.addConstraint(y,E)}return y},f(i,"newtonsCradle","Composites.newtonsCradle ➤ moved to newtonsCradle example"),i.car=function(h,d,m,p,g){var y=l.nextGroup(!0),v=20,T=-m*.5+v,C=m*.5-v,E=0,k=a.create({label:"Car"}),_=c.rectangle(h,d,m,p,{collisionFilter:{group:y},chamfer:{radius:p*.5},density:2e-4}),A=c.circle(h+T,d+E,g,{collisionFilter:{group:y},friction:.8}),I=c.circle(h+C,d+E,g,{collisionFilter:{group:y},friction:.8}),S=o.create({bodyB:_,pointB:{x:T,y:E},bodyA:A,stiffness:1,length:0}),M=o.create({bodyB:_,pointB:{x:C,y:E},bodyA:I,stiffness:1,length:0});return a.addBody(k,_),a.addBody(k,A),a.addBody(k,I),a.addConstraint(k,S),a.addConstraint(k,M),k},f(i,"car","Composites.car ➤ moved to car example"),i.softBody=function(h,d,m,p,g,y,v,T,C,E){C=u.extend({inertia:1/0},C),E=u.extend({stiffness:.2,render:{type:"line",anchors:!1}},E);var k=i.stack(h,d,m,p,g,y,function(_,A){return c.circle(_,A,T,C)});return i.mesh(k,m,p,v,E),k.label="Soft Body",k},f(i,"softBody","Composites.softBody ➤ moved to softBody and cloth examples")})()}),(function(n,r,s){var i={};n.exports=i;var a=s(9),o=s(0),u=o.deprecated;(function(){i.create=function(l){var c={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return o.extend(c,l)},i.update=function(l,c,f,h){var d,m,p,g=f.world,y=l.buckets,v,T,C=!1;for(d=0;d<c.length;d++){var E=c[d];if(!(E.isSleeping&&!h)&&!(g.bounds&&(E.bounds.max.x<g.bounds.min.x||E.bounds.min.x>g.bounds.max.x||E.bounds.max.y<g.bounds.min.y||E.bounds.min.y>g.bounds.max.y))){var k=i._getRegion(l,E);if(!E.region||k.id!==E.region.id||h){(!E.region||h)&&(E.region=k);var _=i._regionUnion(k,E.region);for(m=_.startCol;m<=_.endCol;m++)for(p=_.startRow;p<=_.endRow;p++){T=i._getBucketId(m,p),v=y[T];var A=m>=k.startCol&&m<=k.endCol&&p>=k.startRow&&p<=k.endRow,I=m>=E.region.startCol&&m<=E.region.endCol&&p>=E.region.startRow&&p<=E.region.endRow;!A&&I&&I&&v&&i._bucketRemoveBody(l,v,E),(E.region===k||A&&!I||h)&&(v||(v=i._createBucket(y,T)),i._bucketAddBody(l,v,E))}E.region=k,C=!0}}}C&&(l.pairsList=i._createActivePairsList(l))},u(i,"update","Grid.update ➤ replaced by Matter.Detector"),i.clear=function(l){l.buckets={},l.pairs={},l.pairsList=[]},u(i,"clear","Grid.clear ➤ replaced by Matter.Detector"),i._regionUnion=function(l,c){var f=Math.min(l.startCol,c.startCol),h=Math.max(l.endCol,c.endCol),d=Math.min(l.startRow,c.startRow),m=Math.max(l.endRow,c.endRow);return i._createRegion(f,h,d,m)},i._getRegion=function(l,c){var f=c.bounds,h=Math.floor(f.min.x/l.bucketWidth),d=Math.floor(f.max.x/l.bucketWidth),m=Math.floor(f.min.y/l.bucketHeight),p=Math.floor(f.max.y/l.bucketHeight);return i._createRegion(h,d,m,p)},i._createRegion=function(l,c,f,h){return{id:l+","+c+","+f+","+h,startCol:l,endCol:c,startRow:f,endRow:h}},i._getBucketId=function(l,c){return"C"+l+"R"+c},i._createBucket=function(l,c){var f=l[c]=[];return f},i._bucketAddBody=function(l,c,f){var h=l.pairs,d=a.id,m=c.length,p;for(p=0;p<m;p++){var g=c[p];if(!(f.id===g.id||f.isStatic&&g.isStatic)){var y=d(f,g),v=h[y];v?v[2]+=1:h[y]=[f,g,1]}}c.push(f)},i._bucketRemoveBody=function(l,c,f){var h=l.pairs,d=a.id,m;c.splice(o.indexOf(c,f),1);var p=c.length;for(m=0;m<p;m++){var g=h[d(f,c[m])];g&&(g[2]-=1)}},i._createActivePairsList=function(l){var c,f=l.pairs,h=o.keys(f),d=h.length,m=[],p;for(p=0;p<d;p++)c=f[h[p]],c[2]>0?m.push(c):delete f[h[p]];return m}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(3),o=s(7),u=s(14),l=s(5),c=s(13),f=s(10),h=s(6),d=s(0),m=s(1);(function(){i.create=function(p,g){var y=(p?p.mouse:null)||(g?g.mouse:null);y||(p&&p.render&&p.render.canvas?y=u.create(p.render.canvas):g&&g.element?y=u.create(g.element):(y=u.create(),d.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var v=f.create({label:"Mouse Constraint",pointA:y.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),T={type:"mouseConstraint",mouse:y,element:null,body:null,constraint:v,collisionFilter:{category:1,mask:4294967295,group:0}},C=d.extend(T,g);return l.on(p,"beforeUpdate",function(){var E=h.allBodies(p.world);i.update(C,E),i._triggerEvents(C)}),C},i.update=function(p,g){var y=p.mouse,v=p.constraint,T=p.body;if(y.button===0){if(v.bodyB)o.set(v.bodyB,!1),v.pointA=y.position;else for(var C=0;C<g.length;C++)if(T=g[C],m.contains(T.bounds,y.position)&&c.canCollide(T.collisionFilter,p.collisionFilter))for(var E=T.parts.length>1?1:0;E<T.parts.length;E++){var k=T.parts[E];if(a.contains(k.vertices,y.position)){v.pointA=y.position,v.bodyB=p.body=T,v.pointB={x:y.position.x-T.position.x,y:y.position.y-T.position.y},v.angleB=T.angle,o.set(T,!1),l.trigger(p,"startdrag",{mouse:y,body:T});break}}}else v.bodyB=p.body=null,v.pointB=null,T&&l.trigger(p,"enddrag",{mouse:y,body:T})},i._triggerEvents=function(p){var g=p.mouse,y=g.sourceEvents;y.mousemove&&l.trigger(p,"mousemove",{mouse:g}),y.mousedown&&l.trigger(p,"mousedown",{mouse:g}),y.mouseup&&l.trigger(p,"mouseup",{mouse:g}),u.clearSourceEvents(g)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(2),o=s(8),u=s(1),l=s(12),c=s(3);(function(){i.collides=function(f,h){for(var d=[],m=h.length,p=f.bounds,g=o.collides,y=u.overlaps,v=0;v<m;v++){var T=h[v],C=T.parts.length,E=C===1?0:1;if(y(T.bounds,p))for(var k=E;k<C;k++){var _=T.parts[k];if(y(_.bounds,p)){var A=g(_,f);if(A){d.push(A);break}}}}return d},i.ray=function(f,h,d,m){m=m||1e-100;for(var p=a.angle(h,d),g=a.magnitude(a.sub(h,d)),y=(d.x+h.x)*.5,v=(d.y+h.y)*.5,T=l.rectangle(y,v,g,m,{angle:p}),C=i.collides(T,f),E=0;E<C.length;E+=1){var k=C[E];k.body=k.bodyB=k.bodyA}return C},i.region=function(f,h,d){for(var m=[],p=0;p<f.length;p++){var g=f[p],y=u.overlaps(g.bounds,h);(y&&!d||!y&&d)&&m.push(g)}return m},i.point=function(f,h){for(var d=[],m=0;m<f.length;m++){var p=f[m];if(u.contains(p.bounds,h))for(var g=p.parts.length===1?0:1;g<p.parts.length;g++){var y=p.parts[g];if(u.contains(y.bounds,h)&&c.contains(y.vertices,h)){d.push(p);break}}}return d}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(4),o=s(0),u=s(6),l=s(1),c=s(5),f=s(2),h=s(14);(function(){var d,m;typeof window<"u"&&(d=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(E){window.setTimeout(function(){E(o.now())},1e3/60)},m=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),i._goodFps=30,i._goodDelta=1e3/60,i.create=function(E){var k={engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:"#14151f",wireframeBackground:"#14151f",hasBounds:!!E.bounds,enabled:!0,wireframes:!0,showSleeping:!0,showDebug:!1,showStats:!1,showPerformance:!1,showBounds:!1,showVelocity:!1,showCollisions:!1,showSeparations:!1,showAxes:!1,showPositions:!1,showAngleIndicator:!1,showIds:!1,showVertexNumbers:!1,showConvexHulls:!1,showInternalEdges:!1,showMousePosition:!1}},_=o.extend(k,E);return _.canvas&&(_.canvas.width=_.options.width||_.canvas.width,_.canvas.height=_.options.height||_.canvas.height),_.mouse=E.mouse,_.engine=E.engine,_.canvas=_.canvas||y(_.options.width,_.options.height),_.context=_.canvas.getContext("2d"),_.textures={},_.bounds=_.bounds||{min:{x:0,y:0},max:{x:_.canvas.width,y:_.canvas.height}},_.controller=i,_.options.showBroadphase=!1,_.options.pixelRatio!==1&&i.setPixelRatio(_,_.options.pixelRatio),o.isElement(_.element)&&_.element.appendChild(_.canvas),_},i.run=function(E){(function k(_){E.frameRequestId=d(k),p(E,_),i.world(E,_),(E.options.showStats||E.options.showDebug)&&i.stats(E,E.context,_),(E.options.showPerformance||E.options.showDebug)&&i.performance(E,E.context,_)})()},i.stop=function(E){m(E.frameRequestId)},i.setPixelRatio=function(E,k){var _=E.options,A=E.canvas;k==="auto"&&(k=v(A)),_.pixelRatio=k,A.setAttribute("data-pixel-ratio",k),A.width=_.width*k,A.height=_.height*k,A.style.width=_.width+"px",A.style.height=_.height+"px"},i.lookAt=function(E,k,_,A){A=typeof A<"u"?A:!0,k=o.isArray(k)?k:[k],_=_||{x:0,y:0};for(var I={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0}},S=0;S<k.length;S+=1){var M=k[S],N=M.bounds?M.bounds.min:M.min||M.position||M,j=M.bounds?M.bounds.max:M.max||M.position||M;N&&j&&(N.x<I.min.x&&(I.min.x=N.x),j.x>I.max.x&&(I.max.x=j.x),N.y<I.min.y&&(I.min.y=N.y),j.y>I.max.y&&(I.max.y=j.y))}var P=I.max.x-I.min.x+2*_.x,L=I.max.y-I.min.y+2*_.y,F=E.canvas.height,V=E.canvas.width,B=V/F,q=P/L,R=1,$=1;q>B?$=q/B:R=B/q,E.options.hasBounds=!0,E.bounds.min.x=I.min.x,E.bounds.max.x=I.min.x+P*R,E.bounds.min.y=I.min.y,E.bounds.max.y=I.min.y+L*$,A&&(E.bounds.min.x+=P*.5-P*R*.5,E.bounds.max.x+=P*.5-P*R*.5,E.bounds.min.y+=L*.5-L*$*.5,E.bounds.max.y+=L*.5-L*$*.5),E.bounds.min.x-=_.x,E.bounds.max.x-=_.x,E.bounds.min.y-=_.y,E.bounds.max.y-=_.y,E.mouse&&(h.setScale(E.mouse,{x:(E.bounds.max.x-E.bounds.min.x)/E.canvas.width,y:(E.bounds.max.y-E.bounds.min.y)/E.canvas.height}),h.setOffset(E.mouse,E.bounds.min))},i.startViewTransform=function(E){var k=E.bounds.max.x-E.bounds.min.x,_=E.bounds.max.y-E.bounds.min.y,A=k/E.options.width,I=_/E.options.height;E.context.setTransform(E.options.pixelRatio/A,0,0,E.options.pixelRatio/I,0,0),E.context.translate(-E.bounds.min.x,-E.bounds.min.y)},i.endViewTransform=function(E){E.context.setTransform(E.options.pixelRatio,0,0,E.options.pixelRatio,0,0)},i.world=function(E,k){var _=o.now(),A=E.engine,I=A.world,S=E.canvas,M=E.context,N=E.options,j=E.timing,P=u.allBodies(I),L=u.allConstraints(I),F=N.wireframes?N.wireframeBackground:N.background,V=[],B=[],q,R={timestamp:A.timing.timestamp};if(c.trigger(E,"beforeRender",R),E.currentBackground!==F&&C(E,F),M.globalCompositeOperation="source-in",M.fillStyle="transparent",M.fillRect(0,0,S.width,S.height),M.globalCompositeOperation="source-over",N.hasBounds){for(q=0;q<P.length;q++){var $=P[q];l.overlaps($.bounds,E.bounds)&&V.push($)}for(q=0;q<L.length;q++){var K=L[q],D=K.bodyA,Z=K.bodyB,oe=K.pointA,z=K.pointB;D&&(oe=f.add(D.position,K.pointA)),Z&&(z=f.add(Z.position,K.pointB)),!(!oe||!z)&&(l.contains(E.bounds,oe)||l.contains(E.bounds,z))&&B.push(K)}i.startViewTransform(E),E.mouse&&(h.setScale(E.mouse,{x:(E.bounds.max.x-E.bounds.min.x)/E.options.width,y:(E.bounds.max.y-E.bounds.min.y)/E.options.height}),h.setOffset(E.mouse,E.bounds.min))}else B=L,V=P,E.options.pixelRatio!==1&&E.context.setTransform(E.options.pixelRatio,0,0,E.options.pixelRatio,0,0);!N.wireframes||A.enableSleeping&&N.showSleeping?i.bodies(E,V,M):(N.showConvexHulls&&i.bodyConvexHulls(E,V,M),i.bodyWireframes(E,V,M)),N.showBounds&&i.bodyBounds(E,V,M),(N.showAxes||N.showAngleIndicator)&&i.bodyAxes(E,V,M),N.showPositions&&i.bodyPositions(E,V,M),N.showVelocity&&i.bodyVelocity(E,V,M),N.showIds&&i.bodyIds(E,V,M),N.showSeparations&&i.separations(E,A.pairs.list,M),N.showCollisions&&i.collisions(E,A.pairs.list,M),N.showVertexNumbers&&i.vertexNumbers(E,V,M),N.showMousePosition&&i.mousePosition(E,E.mouse,M),i.constraints(B,M),N.hasBounds&&i.endViewTransform(E),c.trigger(E,"afterRender",R),j.lastElapsed=o.now()-_},i.stats=function(E,k,_){for(var A=E.engine,I=A.world,S=u.allBodies(I),M=0,N=55,j=44,P=0,L=0,F=0;F<S.length;F+=1)M+=S[F].parts.length;var V={Part:M,Body:S.length,Cons:u.allConstraints(I).length,Comp:u.allComposites(I).length,Pair:A.pairs.list.length};k.fillStyle="#0e0f19",k.fillRect(P,L,N*5.5,j),k.font="12px Arial",k.textBaseline="top",k.textAlign="right";for(var B in V){var q=V[B];k.fillStyle="#aaa",k.fillText(B,P+N,L+8),k.fillStyle="#eee",k.fillText(q,P+N,L+26),P+=N}},i.performance=function(E,k){var _=E.engine,A=E.timing,I=A.deltaHistory,S=A.elapsedHistory,M=A.timestampElapsedHistory,N=A.engineDeltaHistory,j=A.engineElapsedHistory,P=_.timing.lastDelta,L=g(I),F=g(S),V=g(N),B=g(j),q=g(M),R=q/L||0,$=1e3/L||0,K=4,D=12,Z=60,oe=34,z=10,J=69;k.fillStyle="#0e0f19",k.fillRect(0,50,D*4+Z*5+22,oe),i.status(k,z,J,Z,K,I.length,Math.round($)+" fps",$/i._goodFps,function(X){return I[X]/L-1}),i.status(k,z+D+Z,J,Z,K,N.length,P.toFixed(2)+" dt",i._goodDelta/P,function(X){return N[X]/V-1}),i.status(k,z+(D+Z)*2,J,Z,K,j.length,B.toFixed(2)+" ut",1-B/i._goodFps,function(X){return j[X]/B-1}),i.status(k,z+(D+Z)*3,J,Z,K,S.length,F.toFixed(2)+" rt",1-F/i._goodFps,function(X){return S[X]/F-1}),i.status(k,z+(D+Z)*4,J,Z,K,M.length,R.toFixed(2)+" x",R*R*R,function(X){return(M[X]/I[X]/R||0)-1})},i.status=function(E,k,_,A,I,S,M,N,j){E.strokeStyle="#888",E.fillStyle="#444",E.lineWidth=1,E.fillRect(k,_+7,A,1),E.beginPath(),E.moveTo(k,_+7-I*o.clamp(.4*j(0),-2,2));for(var P=0;P<A;P+=1)E.lineTo(k+P,_+7-(P<S?I*o.clamp(.4*j(P),-2,2):0));E.stroke(),E.fillStyle="hsl("+o.clamp(25+95*N,0,120)+",100%,60%)",E.fillRect(k,_-7,4,4),E.font="12px Arial",E.textBaseline="middle",E.textAlign="right",E.fillStyle="#eee",E.fillText(M,k+A,_-5)},i.constraints=function(E,k){for(var _=k,A=0;A<E.length;A++){var I=E[A];if(!(!I.render.visible||!I.pointA||!I.pointB)){var S=I.bodyA,M=I.bodyB,N,j;if(S?N=f.add(S.position,I.pointA):N=I.pointA,I.render.type==="pin")_.beginPath(),_.arc(N.x,N.y,3,0,2*Math.PI),_.closePath();else{if(M?j=f.add(M.position,I.pointB):j=I.pointB,_.beginPath(),_.moveTo(N.x,N.y),I.render.type==="spring")for(var P=f.sub(j,N),L=f.perp(f.normalise(P)),F=Math.ceil(o.clamp(I.length/5,12,20)),V,B=1;B<F;B+=1)V=B%2===0?1:-1,_.lineTo(N.x+P.x*(B/F)+L.x*V*4,N.y+P.y*(B/F)+L.y*V*4);_.lineTo(j.x,j.y)}I.render.lineWidth&&(_.lineWidth=I.render.lineWidth,_.strokeStyle=I.render.strokeStyle,_.stroke()),I.render.anchors&&(_.fillStyle=I.render.strokeStyle,_.beginPath(),_.arc(N.x,N.y,3,0,2*Math.PI),_.arc(j.x,j.y,3,0,2*Math.PI),_.closePath(),_.fill())}}},i.bodies=function(E,k,_){var A=_;E.engine;var I=E.options,S=I.showInternalEdges||!I.wireframes,M,N,j,P;for(j=0;j<k.length;j++)if(M=k[j],!!M.render.visible){for(P=M.parts.length>1?1:0;P<M.parts.length;P++)if(N=M.parts[P],!!N.render.visible){if(I.showSleeping&&M.isSleeping?A.globalAlpha=.5*N.render.opacity:N.render.opacity!==1&&(A.globalAlpha=N.render.opacity),N.render.sprite&&N.render.sprite.texture&&!I.wireframes){var L=N.render.sprite,F=T(E,L.texture);A.translate(N.position.x,N.position.y),A.rotate(N.angle),A.drawImage(F,F.width*-L.xOffset*L.xScale,F.height*-L.yOffset*L.yScale,F.width*L.xScale,F.height*L.yScale),A.rotate(-N.angle),A.translate(-N.position.x,-N.position.y)}else{if(N.circleRadius)A.beginPath(),A.arc(N.position.x,N.position.y,N.circleRadius,0,2*Math.PI);else{A.beginPath(),A.moveTo(N.vertices[0].x,N.vertices[0].y);for(var V=1;V<N.vertices.length;V++)!N.vertices[V-1].isInternal||S?A.lineTo(N.vertices[V].x,N.vertices[V].y):A.moveTo(N.vertices[V].x,N.vertices[V].y),N.vertices[V].isInternal&&!S&&A.moveTo(N.vertices[(V+1)%N.vertices.length].x,N.vertices[(V+1)%N.vertices.length].y);A.lineTo(N.vertices[0].x,N.vertices[0].y),A.closePath()}I.wireframes?(A.lineWidth=1,A.strokeStyle="#bbb",A.stroke()):(A.fillStyle=N.render.fillStyle,N.render.lineWidth&&(A.lineWidth=N.render.lineWidth,A.strokeStyle=N.render.strokeStyle,A.stroke()),A.fill())}A.globalAlpha=1}}},i.bodyWireframes=function(E,k,_){var A=_,I=E.options.showInternalEdges,S,M,N,j,P;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.render.visible)for(P=S.parts.length>1?1:0;P<S.parts.length;P++){for(M=S.parts[P],A.moveTo(M.vertices[0].x,M.vertices[0].y),j=1;j<M.vertices.length;j++)!M.vertices[j-1].isInternal||I?A.lineTo(M.vertices[j].x,M.vertices[j].y):A.moveTo(M.vertices[j].x,M.vertices[j].y),M.vertices[j].isInternal&&!I&&A.moveTo(M.vertices[(j+1)%M.vertices.length].x,M.vertices[(j+1)%M.vertices.length].y);A.lineTo(M.vertices[0].x,M.vertices[0].y)}A.lineWidth=1,A.strokeStyle="#bbb",A.stroke()},i.bodyConvexHulls=function(E,k,_){var A=_,I,S,M;for(A.beginPath(),S=0;S<k.length;S++)if(I=k[S],!(!I.render.visible||I.parts.length===1)){for(A.moveTo(I.vertices[0].x,I.vertices[0].y),M=1;M<I.vertices.length;M++)A.lineTo(I.vertices[M].x,I.vertices[M].y);A.lineTo(I.vertices[0].x,I.vertices[0].y)}A.lineWidth=1,A.strokeStyle="rgba(255,255,255,0.2)",A.stroke()},i.vertexNumbers=function(E,k,_){var A=_,I,S,M;for(I=0;I<k.length;I++){var N=k[I].parts;for(M=N.length>1?1:0;M<N.length;M++){var j=N[M];for(S=0;S<j.vertices.length;S++)A.fillStyle="rgba(255,255,255,0.2)",A.fillText(I+"_"+S,j.position.x+(j.vertices[S].x-j.position.x)*.8,j.position.y+(j.vertices[S].y-j.position.y)*.8)}}},i.mousePosition=function(E,k,_){var A=_;A.fillStyle="rgba(255,255,255,0.8)",A.fillText(k.position.x+" "+k.position.y,k.position.x+5,k.position.y-5)},i.bodyBounds=function(E,k,_){var A=_;E.engine;var I=E.options;A.beginPath();for(var S=0;S<k.length;S++){var M=k[S];if(M.render.visible)for(var N=k[S].parts,j=N.length>1?1:0;j<N.length;j++){var P=N[j];A.rect(P.bounds.min.x,P.bounds.min.y,P.bounds.max.x-P.bounds.min.x,P.bounds.max.y-P.bounds.min.y)}}I.wireframes?A.strokeStyle="rgba(255,255,255,0.08)":A.strokeStyle="rgba(0,0,0,0.1)",A.lineWidth=1,A.stroke()},i.bodyAxes=function(E,k,_){var A=_;E.engine;var I=E.options,S,M,N,j;for(A.beginPath(),M=0;M<k.length;M++){var P=k[M],L=P.parts;if(P.render.visible)if(I.showAxes)for(N=L.length>1?1:0;N<L.length;N++)for(S=L[N],j=0;j<S.axes.length;j++){var F=S.axes[j];A.moveTo(S.position.x,S.position.y),A.lineTo(S.position.x+F.x*20,S.position.y+F.y*20)}else for(N=L.length>1?1:0;N<L.length;N++)for(S=L[N],j=0;j<S.axes.length;j++)A.moveTo(S.position.x,S.position.y),A.lineTo((S.vertices[0].x+S.vertices[S.vertices.length-1].x)/2,(S.vertices[0].y+S.vertices[S.vertices.length-1].y)/2)}I.wireframes?(A.strokeStyle="indianred",A.lineWidth=1):(A.strokeStyle="rgba(255, 255, 255, 0.4)",A.globalCompositeOperation="overlay",A.lineWidth=2),A.stroke(),A.globalCompositeOperation="source-over"},i.bodyPositions=function(E,k,_){var A=_;E.engine;var I=E.options,S,M,N,j;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.render.visible)for(j=0;j<S.parts.length;j++)M=S.parts[j],A.arc(M.position.x,M.position.y,3,0,2*Math.PI,!1),A.closePath();for(I.wireframes?A.fillStyle="indianred":A.fillStyle="rgba(0,0,0,0.5)",A.fill(),A.beginPath(),N=0;N<k.length;N++)S=k[N],S.render.visible&&(A.arc(S.positionPrev.x,S.positionPrev.y,2,0,2*Math.PI,!1),A.closePath());A.fillStyle="rgba(255,165,0,0.8)",A.fill()},i.bodyVelocity=function(E,k,_){var A=_;A.beginPath();for(var I=0;I<k.length;I++){var S=k[I];if(S.render.visible){var M=a.getVelocity(S);A.moveTo(S.position.x,S.position.y),A.lineTo(S.position.x+M.x,S.position.y+M.y)}}A.lineWidth=3,A.strokeStyle="cornflowerblue",A.stroke()},i.bodyIds=function(E,k,_){var A=_,I,S;for(I=0;I<k.length;I++)if(k[I].render.visible){var M=k[I].parts;for(S=M.length>1?1:0;S<M.length;S++){var N=M[S];A.font="12px Arial",A.fillStyle="rgba(255,255,255,0.5)",A.fillText(N.id,N.position.x+10,N.position.y-10)}}},i.collisions=function(E,k,_){var A=_,I=E.options,S,M,N,j;for(A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.isActive)for(M=S.collision,j=0;j<S.activeContacts.length;j++){var P=S.activeContacts[j],L=P.vertex;A.rect(L.x-1.5,L.y-1.5,3.5,3.5)}for(I.wireframes?A.fillStyle="rgba(255,255,255,0.7)":A.fillStyle="orange",A.fill(),A.beginPath(),N=0;N<k.length;N++)if(S=k[N],!!S.isActive&&(M=S.collision,S.activeContacts.length>0)){var F=S.activeContacts[0].vertex.x,V=S.activeContacts[0].vertex.y;S.activeContacts.length===2&&(F=(S.activeContacts[0].vertex.x+S.activeContacts[1].vertex.x)/2,V=(S.activeContacts[0].vertex.y+S.activeContacts[1].vertex.y)/2),M.bodyB===M.supports[0].body||M.bodyA.isStatic===!0?A.moveTo(F-M.normal.x*8,V-M.normal.y*8):A.moveTo(F+M.normal.x*8,V+M.normal.y*8),A.lineTo(F,V)}I.wireframes?A.strokeStyle="rgba(255,165,0,0.7)":A.strokeStyle="orange",A.lineWidth=1,A.stroke()},i.separations=function(E,k,_){var A=_,I=E.options,S,M,N,j,P;for(A.beginPath(),P=0;P<k.length;P++)if(S=k[P],!!S.isActive){M=S.collision,N=M.bodyA,j=M.bodyB;var L=1;!j.isStatic&&!N.isStatic&&(L=.5),j.isStatic&&(L=0),A.moveTo(j.position.x,j.position.y),A.lineTo(j.position.x-M.penetration.x*L,j.position.y-M.penetration.y*L),L=1,!j.isStatic&&!N.isStatic&&(L=.5),N.isStatic&&(L=0),A.moveTo(N.position.x,N.position.y),A.lineTo(N.position.x+M.penetration.x*L,N.position.y+M.penetration.y*L)}I.wireframes?A.strokeStyle="rgba(255,165,0,0.5)":A.strokeStyle="orange",A.stroke()},i.inspector=function(E,k){E.engine;var _=E.selected,A=E.render,I=A.options,S;if(I.hasBounds){var M=A.bounds.max.x-A.bounds.min.x,N=A.bounds.max.y-A.bounds.min.y,j=M/A.options.width,P=N/A.options.height;k.scale(1/j,1/P),k.translate(-A.bounds.min.x,-A.bounds.min.y)}for(var L=0;L<_.length;L++){var F=_[L].data;switch(k.translate(.5,.5),k.lineWidth=1,k.strokeStyle="rgba(255,165,0,0.9)",k.setLineDash([1,2]),F.type){case"body":S=F.bounds,k.beginPath(),k.rect(Math.floor(S.min.x-3),Math.floor(S.min.y-3),Math.floor(S.max.x-S.min.x+6),Math.floor(S.max.y-S.min.y+6)),k.closePath(),k.stroke();break;case"constraint":var V=F.pointA;F.bodyA&&(V=F.pointB),k.beginPath(),k.arc(V.x,V.y,10,0,2*Math.PI),k.closePath(),k.stroke();break}k.setLineDash([]),k.translate(-.5,-.5)}E.selectStart!==null&&(k.translate(.5,.5),k.lineWidth=1,k.strokeStyle="rgba(255,165,0,0.6)",k.fillStyle="rgba(255,165,0,0.1)",S=E.selectBounds,k.beginPath(),k.rect(Math.floor(S.min.x),Math.floor(S.min.y),Math.floor(S.max.x-S.min.x),Math.floor(S.max.y-S.min.y)),k.closePath(),k.stroke(),k.fill(),k.translate(-.5,-.5)),I.hasBounds&&k.setTransform(1,0,0,1,0,0)};var p=function(E,k){var _=E.engine,A=E.timing,I=A.historySize,S=_.timing.timestamp;A.delta=k-A.lastTime||i._goodDelta,A.lastTime=k,A.timestampElapsed=S-A.lastTimestamp||0,A.lastTimestamp=S,A.deltaHistory.unshift(A.delta),A.deltaHistory.length=Math.min(A.deltaHistory.length,I),A.engineDeltaHistory.unshift(_.timing.lastDelta),A.engineDeltaHistory.length=Math.min(A.engineDeltaHistory.length,I),A.timestampElapsedHistory.unshift(A.timestampElapsed),A.timestampElapsedHistory.length=Math.min(A.timestampElapsedHistory.length,I),A.engineElapsedHistory.unshift(_.timing.lastElapsed),A.engineElapsedHistory.length=Math.min(A.engineElapsedHistory.length,I),A.elapsedHistory.unshift(A.lastElapsed),A.elapsedHistory.length=Math.min(A.elapsedHistory.length,I)},g=function(E){for(var k=0,_=0;_<E.length;_+=1)k+=E[_];return k/E.length||0},y=function(E,k){var _=document.createElement("canvas");return _.width=E,_.height=k,_.oncontextmenu=function(){return!1},_.onselectstart=function(){return!1},_},v=function(E){var k=E.getContext("2d"),_=window.devicePixelRatio||1,A=k.webkitBackingStorePixelRatio||k.mozBackingStorePixelRatio||k.msBackingStorePixelRatio||k.oBackingStorePixelRatio||k.backingStorePixelRatio||1;return _/A},T=function(E,k){var _=E.textures[k];return _||(_=E.textures[k]=new Image,_.src=k,_)},C=function(E,k){var _=k;/(jpg|gif|png)$/.test(k)&&(_="url("+k+")"),E.canvas.style.background=_,E.canvas.style.backgroundSize="contain",E.currentBackground=k}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(5),o=s(17),u=s(0);(function(){var l,c;if(typeof window<"u"&&(l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame,c=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),!l){var f;l=function(h){f=setTimeout(function(){h(u.now())},1e3/60)},c=function(){clearTimeout(f)}}i.create=function(h){var d={fps:60,deltaSampleSize:60,counterTimestamp:0,frameCounter:0,deltaHistory:[],timePrev:null,frameRequestId:null,isFixed:!1,enabled:!0},m=u.extend(d,h);return m.delta=m.delta||1e3/m.fps,m.deltaMin=m.deltaMin||1e3/m.fps,m.deltaMax=m.deltaMax||1e3/(m.fps*.5),m.fps=1e3/m.delta,m},i.run=function(h,d){return typeof h.positionIterations<"u"&&(d=h,h=i.create()),(function m(p){h.frameRequestId=l(m),p&&h.enabled&&i.tick(h,d,p)})(),h},i.tick=function(h,d,m){var p=d.timing,g;h.isFixed?g=h.delta:(g=m-h.timePrev||h.delta,h.timePrev=m,h.deltaHistory.push(g),h.deltaHistory=h.deltaHistory.slice(-h.deltaSampleSize),g=Math.min.apply(null,h.deltaHistory),g=g<h.deltaMin?h.deltaMin:g,g=g>h.deltaMax?h.deltaMax:g,h.delta=g);var y={timestamp:p.timestamp};a.trigger(h,"beforeTick",y),h.frameCounter+=1,m-h.counterTimestamp>=1e3&&(h.fps=h.frameCounter*((m-h.counterTimestamp)/1e3),h.counterTimestamp=m,h.frameCounter=0),a.trigger(h,"tick",y),a.trigger(h,"beforeUpdate",y),o.update(d,g),a.trigger(h,"afterUpdate",y),a.trigger(h,"afterTick",y)},i.stop=function(h){c(h.frameRequestId)},i.start=function(h,d){i.run(h,d)}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(8),o=s(0),u=o.deprecated;(function(){i.collides=function(l,c){return a.collides(l,c)},u(i,"collides","SAT.collides ➤ replaced by Collision.collides")})()}),(function(n,r,s){var i={};n.exports=i,s(1);var a=s(0);(function(){i.pathToVertices=function(o,u){typeof window<"u"&&!("SVGPathSeg"in window)&&a.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var l,c,f,h,d,m,p,g,y,v,T=[],C,E,k=0,_=0,A=0;u=u||15;var I=function(M,N,j){var P=j%2===1&&j>1;if(!y||M!=y.x||N!=y.y){y&&P?(C=y.x,E=y.y):(C=0,E=0);var L={x:C+M,y:E+N};(P||!y)&&(y=L),T.push(L),_=C+M,A=E+N}},S=function(M){var N=M.pathSegTypeAsLetter.toUpperCase();if(N!=="Z"){switch(N){case"M":case"L":case"T":case"C":case"S":case"Q":_=M.x,A=M.y;break;case"H":_=M.x;break;case"V":A=M.y;break}I(_,A,M.pathSegType)}};for(i._svgPathToAbsolute(o),f=o.getTotalLength(),m=[],l=0;l<o.pathSegList.numberOfItems;l+=1)m.push(o.pathSegList.getItem(l));for(p=m.concat();k<f;){if(v=o.getPathSegAtLength(k),d=m[v],d!=g){for(;p.length&&p[0]!=d;)S(p.shift());g=d}switch(d.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":h=o.getPointAtLength(k),I(h.x,h.y,0);break}k+=u}for(l=0,c=p.length;l<c;++l)S(p[l]);return T},i._svgPathToAbsolute=function(o){for(var u,l,c,f,h,d,m=o.pathSegList,p=0,g=0,y=m.numberOfItems,v=0;v<y;++v){var T=m.getItem(v),C=T.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(C))"x"in T&&(p=T.x),"y"in T&&(g=T.y);else switch("x1"in T&&(c=p+T.x1),"x2"in T&&(h=p+T.x2),"y1"in T&&(f=g+T.y1),"y2"in T&&(d=g+T.y2),"x"in T&&(p+=T.x),"y"in T&&(g+=T.y),C){case"m":m.replaceItem(o.createSVGPathSegMovetoAbs(p,g),v);break;case"l":m.replaceItem(o.createSVGPathSegLinetoAbs(p,g),v);break;case"h":m.replaceItem(o.createSVGPathSegLinetoHorizontalAbs(p),v);break;case"v":m.replaceItem(o.createSVGPathSegLinetoVerticalAbs(g),v);break;case"c":m.replaceItem(o.createSVGPathSegCurvetoCubicAbs(p,g,c,f,h,d),v);break;case"s":m.replaceItem(o.createSVGPathSegCurvetoCubicSmoothAbs(p,g,h,d),v);break;case"q":m.replaceItem(o.createSVGPathSegCurvetoQuadraticAbs(p,g,c,f),v);break;case"t":m.replaceItem(o.createSVGPathSegCurvetoQuadraticSmoothAbs(p,g),v);break;case"a":m.replaceItem(o.createSVGPathSegArcAbs(p,g,T.r1,T.r2,T.angle,T.largeArcFlag,T.sweepFlag),v);break;case"z":case"Z":p=u,g=l;break}(C=="M"||C=="m")&&(u=p,l=g)}}})()}),(function(n,r,s){var i={};n.exports=i;var a=s(6);s(0),(function(){i.create=a.create,i.add=a.add,i.remove=a.remove,i.clear=a.clear,i.addComposite=a.addComposite,i.addBody=a.addBody,i.addConstraint=a.addConstraint})()})])})})(as)),as.exports}var Lx=Rx();const ln=xu(Lx);{const e=ln.Resolver;e&&typeof e._restingThresh=="number"&&(e._restingThresh=1.4)}const Mx=6,Bt=28,cn=.92,xa=1.12,Px=34;function $l(e,t,n){return Math.hypot(t-e.startX,n-e.startY)<Mx?"click":"drag"}function Dx(e){const t=e.length;if(t===0)return"";const n=s=>`${s.x.toFixed(1)} ${s.y.toFixed(1)}`;if(t===1)return`M ${n(e[0])}`;if(t===2)return`M ${n(e[0])} L ${n(e[1])}`;let r=`M ${n(e[0])}`;for(let s=1;s<t-1;s++){const i=e[s],a=e[s+1];r+=` Q ${n(i)} ${((i.x+a.x)/2).toFixed(1)} ${((i.y+a.y)/2).toFixed(1)}`}return`${r} L ${n(e[t-1])}`}function Ox(e,t){return e*Math.exp(-t/90)}function Fx(e,t,n,r){const s=`translate3d(${e.toFixed(1)}px, ${t.toFixed(1)}px, 0)`;if(n<.01)return s;const i=r*180/Math.PI,a=Math.min(.35,n);return`${s} rotate(${i.toFixed(1)}deg) scale(${(1+a).toFixed(3)}, ${(1-a).toFixed(3)}) rotate(${(-i).toFixed(1)}deg)`}const Sh=4e-5,Bx=5e-4;function Ah(e,t,n){return Math.sin(n*37e-5+t*.0013)*.6+Math.sin(n*19e-5+e*7e-4+1.7)*.4}function Ch(e){switch(e){case"storm":return{wind:.95,gust:1,rainRate:.006,snowRate:0,airDrag:1.05};case"rain":return{wind:.6,gust:.25,rainRate:.004,snowRate:0,airDrag:1};case"snow":return{wind:.25,gust:0,rainRate:0,snowRate:4e-4,airDrag:1};case"fog":return{wind:.06,gust:0,rainRate:0,snowRate:0,airDrag:1.7};case"cloudy":return{wind:.4,gust:.1,rainRate:0,snowRate:0,airDrag:1};case"clear":default:return{wind:.3,gust:0,rainRate:0,snowRate:0,airDrag:1}}}function _h(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,(t>>>0)/4294967295}const Fr=120,jx=.9,Wl=.7,Hx=.09,Ux=2.2,zx=2,ba=Bt*2.45,Vx=.006,ya=22,Ea=.06;function qx(e){var j;const t=e.ballRadius??Bt,n=Ch(e.weather??"clear"),{Engine:r,Bodies:s,Body:i,Composite:a,Constraint:o,Events:u}=ln,l=r.create();l.gravity.y=1,l.positionIterations=8,l.velocityIterations=4;const c=e.nodes.map(P=>{var B,q;const L=((B=P.spawn)==null?void 0:B.x)??P.x,F=((q=P.spawn)==null?void 0:q.y)??P.y,V=s.circle(L,F,t,{restitution:.5,friction:.01,frictionAir:.03*n.airDrag,density:P.isExam?.0016:.001,inertia:1/0,isStatic:!!P.locked,collisionFilter:{group:0,category:2,mask:6}});return{nodeId:P.id,body:V,layoutX:P.x,layoutY:P.y,isExam:!!P.isExam,snow:0,field:0,squash:0,squashAngle:0}});for(const P of c){a.add(l.world,P.body);const L=(j=e.nodes.find(F=>F.id===P.nodeId))==null?void 0:j.spawn;L&&(L.vx!==void 0||L.vy!==void 0)&&i.setVelocity(P.body,{x:L.vx??0,y:L.vy??0})}const f=Fr/2,h={isStatic:!0,restitution:.4,friction:.05,collisionFilter:{category:4,mask:2}},d=(P,L)=>({x:Math.min(e.width-t,Math.max(t,P)),y:Math.min(e.height-t,Math.max(t,L))});a.add(l.world,[s.rectangle(e.width/2,-f,e.width*3,Fr,h),s.rectangle(e.width/2,e.height+f,e.width*3,Fr,h),s.rectangle(-f,e.height/2,Fr,e.height*3,h),s.rectangle(e.width+f,e.height/2,Fr,e.height*3,h)]);const m=P=>({x:P.body.position.x,y:P.body.position.y+t*cn}),p=[];function g(P,L,F,V,B){return"body"in P?o.create({bodyA:P.body,pointA:P.offset,bodyB:L,pointB:F,length:V,stiffness:B,damping:.05}):o.create({pointA:P.point,bodyB:L,pointB:F,length:V,stiffness:B,damping:.05})}function y(P,L,F,V){const B={x:F.body.position.x,y:F.body.position.y+t*cn},q=B.x-P.x,R=B.y-P.y,$=Math.max(60,Math.hypot(q,R)),K=Math.max(5,Math.min(14,Math.round($/Px))),D=$*xa/K,Z=[];let oe=L?{body:L,offset:{x:P.x-L.position.x,y:P.y-L.position.y}}:{point:P},z=!0;for(let J=1;J<K;J++){const X=J/K,ce=Math.sin(Math.PI*X)*$*(xa-1)*.85,he=s.circle(P.x+q*X,P.y+R*X+ce,3.5,{density:7e-4,frictionAir:.1*n.airDrag,collisionFilter:{category:8,mask:0}});Z.push(he),a.add(l.world,he),a.add(l.world,g(oe,he,void 0,D,z?Wl:jx)),z=!1,oe={body:he,offset:{x:0,y:0}}}a.add(l.world,g(oe,F.body,{x:0,y:t*cn},D,Wl)),p.push({from:V,to:F.nodeId,restLen:$*xa,particles:Z})}const v=c[0],T=v?{x:e.anchorKnotX??v.layoutX,y:ks}:{x:e.width/2,y:ks};v&&y(T,null,v,"__anchor");for(let P=0;P<c.length-1;P++){const L=c[P],F=c[P+1];y(m(L),L.body,F,L.nodeId)}const C=c[c.length-1],E=e.nextKnot&&(C!=null&&C.isExam)?e.nextKnot:void 0;E&&C&&y(E,null,C,"__next");const k=new Map;for(const P of c){let L=0;for(const V of p)if(V.from===P.nodeId||V.to===P.nodeId)for(const B of V.particles)L+=B.mass*.5;const F=Math.min(.25,L/P.body.mass);k.set(P.nodeId,(1+F)*(.96+_h(P.nodeId)*.08))}let _=0,A=1;u.on(l,"beforeUpdate",()=>{const P=l.timing.timestamp;_*=.97,n.gust>0&&Math.random()<.0025*n.gust&&(_=n.gust*(.6+Math.random()*.4),A=Math.random()<.5?-1:1);for(const L of c){const F=L.body.mass,V=l.gravity.y*l.gravity.scale,B=Ah(L.body.position.x,L.body.position.y,P)*n.wind*Sh*F+A*_*Bx*F;let q=-F*V*(k.get(L.nodeId)??1);n.rainRate>0&&Math.random()<n.rainRate&&(q+=F*V*.35,i.applyForce(L.body,L.body.position,{x:(Math.random()-.5)*F*V*.3,y:0})),i.applyForce(L.body,L.body.position,{x:B,y:q})}});const I=[],S=(P,L,F,V)=>{if(P.snow<=Ea)return;const B=Math.max(1,Math.min(V,Math.round(P.snow*V)+1));for(let q=0;q<B;q++){const R=-(.35+Math.random()*1.9),$=t*(.55+Math.random()*.45);I.push({x:P.body.position.x+Math.cos(R)*$,y:P.body.position.y+Math.sin(R)*$,vx:P.body.velocity.x*.75+L.x*(.5+Math.random()*1.8)+(Math.random()-.5)*1.2,vy:P.body.velocity.y*.75+L.y*(.5+Math.random()*1.8)-.6-Math.random()*.8,amount:.02+Math.min(.05,F*.004)})}P.snow=Math.max(Ea*.5,P.snow-B*(.03+Math.min(.07,F*.005))),I.length>96&&I.splice(0,I.length-96)},M=[];u.on(l,"collisionStart",P=>{var L;for(const F of P.pairs){const{bodyA:V,bodyB:B}=F,q=c.find(z=>z.body===V),R=c.find(z=>z.body===B);if(!q&&!R)continue;const $={x:V.velocity.x-B.velocity.x,y:V.velocity.y-B.velocity.y},K=Math.hypot($.x,$.y);if(K<Ux)continue;const D=F.collision.normal,Z=(L=F.collision.supports)==null?void 0:L[0];M.push(Z?{x:Z.x,y:Z.y,speed:K}:{x:(V.position.x+B.position.x)/2,y:(V.position.y+B.position.y)/2,speed:K}),M.length>64&&M.shift();const oe=Math.min(.32,K*.028);q&&oe>q.squash&&(q.squash=oe,q.squashAngle=Math.atan2(D.y,D.x)),R&&oe>R.squash&&(R.squash=oe,R.squashAngle=Math.atan2(-D.y,-D.x)),q&&S(q,{x:D.x,y:D.y},K,5),R&&S(R,{x:-D.x,y:-D.y},K,5)}}),u.on(l,"afterUpdate",()=>{if(!(n.snowRate<=0))for(const P of c)P.snow=Math.min(1,P.snow+n.snowRate)});let N=null;return{balls:c,links:p,anchor:T,nextKnot:E,ball(P){return c.find(L=>L.nodeId===P)},step(P){r.update(l,Math.min(33,Math.max(8,P)));for(let L=0;L<c.length;L++){const F=c[L];for(let V=L+1;V<c.length;V++){const B=c[V],q=B.body.position.x-F.body.position.x,R=B.body.position.y-F.body.position.y,$=q*q+R*R;if($>=ba*ba||$<.01)continue;const K=Math.sqrt($),D=(K-2*t)/(ba-2*t),Z=D<=0?1:D>=1?0:1-D,z=Math.hypot(F.body.velocity.x-B.body.velocity.x,F.body.velocity.y-B.body.velocity.y)<1.2?Vx*Z*Z:0,J=q/K,X=R/K;F.body.isStatic||i.applyForce(F.body,F.body.position,{x:-J*z*F.body.mass,y:-X*z*F.body.mass}),B.body.isStatic||i.applyForce(B.body,B.body.position,{x:J*z*B.body.mass,y:X*z*B.body.mass}),F.field=Math.max(F.field,Z),B.field=Math.max(B.field,Z)}}for(const L of c)L.field*=.88;for(const L of c){if(L.body.isStatic)continue;const F=L.body.velocity,V=Math.hypot(F.x,F.y);V>ya&&i.setVelocity(L.body,{x:F.x/V*ya,y:F.y/V*ya})}for(let L=0;L<c.length;L++){const F=c[L];for(let V=L+1;V<c.length;V++){const B=c[V];let q=B.body.position.x-F.body.position.x,R=B.body.position.y-F.body.position.y,$=Math.hypot(q,R);if($>=t*2)continue;$<.01&&(q=1,R=0,$=1);const K=t*2-$+.05,D=q/$,Z=R/$;F.body.isStatic&&B.body.isStatic||(F.body.isStatic?i.setPosition(B.body,{x:B.body.position.x+D*K,y:B.body.position.y+Z*K}):B.body.isStatic?i.setPosition(F.body,{x:F.body.position.x-D*K,y:F.body.position.y-Z*K}):(i.setPosition(F.body,{x:F.body.position.x-D*K/2,y:F.body.position.y-Z*K/2}),i.setPosition(B.body,{x:B.body.position.x+D*K/2,y:B.body.position.y+Z*K/2})))}}for(const L of c){const F=Math.hypot(L.body.velocity.x,L.body.velocity.y);L.snow>Ea&&F>zx&&S(L,{x:L.body.velocity.x/F,y:L.body.velocity.y/F},F,2)}for(const L of c){if(L.body.isStatic)continue;const F=L.body.position.x,V=L.body.position.y,B=Math.min(e.width-t,Math.max(t,F)),q=Math.min(e.height-t,Math.max(t,V));(B!==F||q!==V)&&(i.setPosition(L.body,{x:B,y:q}),i.setVelocity(L.body,{x:F<t||F>e.width-t?0:L.body.velocity.x,y:V<t||V>e.height-t?0:L.body.velocity.y}))}},beginDrag(P,L,F){this.endDrag();const V=this.ball(P);if(!V)return;const B=o.create({pointA:d(L,F),bodyB:V.body,length:0,stiffness:Hx,damping:.12});a.add(l.world,B),N={constraint:B,nodeId:P}},moveDrag(P,L){if(!N)return;const F=d(P,L);N.constraint.pointA=F},endDrag(){N&&(a.remove(l.world,N.constraint),N=null)},isDragging(){return N!==null},drainImpacts(){const P=M.slice();return M.length=0,P},drainFlakes(){const P=I.slice();return I.length=0,P},dispose(){this.endDrag(),u.off(l,"beforeUpdate"),u.off(l,"afterUpdate"),u.off(l,"collisionStart"),a.clear(l.world,!1),r.clear(l)}}}const ks=-12;function Ui(e,t,n=20){return t<=n*2?t/2:n+_h(e)*(t-n*2)}function $x(e,t,n,r=Bt){if(t<=0||Math.abs(t-n)<=1)return e;const s=n/t,i={x:Math.min(n-r,Math.max(r,e.x*s)),y:e.y,vy:e.vy};return e.vx!==void 0&&(i.vx=e.vx*s),i}const zn=(e,t,n)=>e+(t-e)*n,Vs=(e,t,n)=>e<t?t:e>n?n:e,mi=e=>e<0?0:e>1?1:e*e*(3-2*e);function Vn(e,t,n){return[zn(e[0],t[0],n),zn(e[1],t[1],n),zn(e[2],t[2],n)]}const Ta=e=>`rgb(${e[0]|0},${e[1]|0},${e[2]|0})`,Er=(e,t)=>`rgba(${e[0]|0},${e[1]|0},${e[2]|0},${t})`;function qs(){return[{t:0,top:[8,10,26],mid:[16,20,44],hor:[34,30,58]},{t:.12,top:[30,32,72],mid:[78,56,104],hor:[158,100,116]},{t:.22,top:[124,156,214],mid:[232,152,120],hor:[250,196,128]},{t:.36,top:[80,142,196],mid:[132,186,226],hor:[188,214,232]},{t:.5,top:[60,120,178],mid:[108,168,212],hor:[168,200,226]},{t:.62,top:[120,132,152],mid:[150,150,160],hor:[180,178,182]},{t:.74,top:[70,60,88],mid:[108,78,110],hor:[180,110,100]},{t:.86,top:[40,30,60],mid:[88,44,76],hor:[168,72,72]},{t:1,top:[8,10,26],mid:[16,20,44],hor:[34,30,58]}]}function $s(e,t){return e.map(n=>({t:n.t,top:t(n.top),mid:t(n.mid),hor:t(n.hor)}))}const va=()=>$s(qs(),e=>[e[0]*1,e[1]*1.15,e[2]*.7]),zi=()=>$s(qs(),e=>[e[0]*.75,e[1]*1,Math.min(255,e[2]*1.25)]),ka=()=>$s(qs(),e=>[Math.min(255,e[0]*1.35),e[1]*.8,e[2]*.55]),Yl=()=>$s(qs(),e=>{const t=(e[0]+e[1]+e[2])/3;return[t*.7+e[0]*.1,t*.7+e[1]*.1,t*.95+e[2]*.15]}),wa={far:[28,50,36],near:[56,110,52],snowy:!1},Vi={far:[20,48,30],near:[34,82,40],snowy:!1},Sa={far:[54,36,24],near:[128,78,36],snowy:!1},Gl={far:[60,66,82],near:[232,236,244],snowy:!0};function Ft(e){return t=>{let n=e;return t>.3&&t<.5?n=zn(n,Math.min(1,n+.2),mi((t-.3)/.2)):t>=.5&&t<.74?n=Math.min(1,n+.15):t>=.74&&t<.84&&(n=zn(n,Math.max(0,n-.3),mi((t-.74)/.1))),Vs(n,0,1)}}const Ih={"spring|clear":{season:"spring",weather:"clear",sky:va(),cloudCover:Ft(.1),particles:"none",lightning:!1,fogAlpha:0,ground:wa},"spring|cloudy":{season:"spring",weather:"cloudy",sky:va(),cloudCover:Ft(.5),particles:"none",lightning:!1,fogAlpha:0,ground:wa},"spring|rain":{season:"spring",weather:"rain",sky:va(),cloudCover:Ft(.85),particles:"rain",lightning:!1,fogAlpha:0,ground:wa},"summer|clear":{season:"summer",weather:"clear",sky:zi(),cloudCover:Ft(.1),particles:"none",lightning:!1,fogAlpha:0,ground:Vi},"summer|cloudy":{season:"summer",weather:"cloudy",sky:zi(),cloudCover:Ft(.5),particles:"none",lightning:!1,fogAlpha:0,ground:Vi},"summer|rain":{season:"summer",weather:"rain",sky:zi(),cloudCover:Ft(.85),particles:"rain",lightning:!1,fogAlpha:0,ground:Vi},"summer|storm":{season:"summer",weather:"storm",sky:zi(),cloudCover:Ft(1),particles:"rain",lightning:!0,fogAlpha:0,ground:Vi},"autumn|clear":{season:"autumn",weather:"clear",sky:ka(),cloudCover:Ft(.15),particles:"none",lightning:!1,fogAlpha:0,ground:Sa,sunTint:[255,180,110]},"autumn|cloudy":{season:"autumn",weather:"cloudy",sky:ka(),cloudCover:Ft(.55),particles:"none",lightning:!1,fogAlpha:0,ground:Sa},"autumn|storm":{season:"autumn",weather:"storm",sky:ka(),cloudCover:Ft(1),particles:"rain",lightning:!0,fogAlpha:0,ground:Sa},"winter|clear":{season:"winter",weather:"clear",sky:Yl(),cloudCover:Ft(.2),particles:"none",lightning:!1,fogAlpha:0,ground:Gl,sunTint:[220,230,245]},"winter|snow":{season:"winter",weather:"snow",sky:Yl(),cloudCover:Ft(.9),particles:"snow",lightning:!1,fogAlpha:.2,ground:Gl}},Kl=Object.keys(Ih);function Wx(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function Yx(e){const t=`${e??"none"}:${Math.floor(performance.now()/1e3)}`;return Kl[Wx(t)%Kl.length]}function Gx(e,t){let n=0;for(;n<t.length-1&&e>t[n+1].t;)n++;const r=t[n],s=t[Math.min(n+1,t.length-1)],i=mi(Vs((e-r.t)/(s.t-r.t||1),0,1));return{top:Vn(r.top,s.top,i),mid:Vn(r.mid,s.mid,i),hor:Vn(r.hor,s.hor,i)}}function Kx(e,t,n,r,s){if(e<r||e>s)return null;const i=(e-r)/(s-r),a=zn(.1,.9,i),o=n*.26,u=n*.98,l=u-Math.sin(i*Math.PI)*(u-o);return{x:a*t,y:l,peakness:Math.sin(i*Math.PI)}}function Xx(e,t,n,r,s){let i;if(e>=r)i=(e-r)/(1-r+s);else if(e<=s)i=(1-r+e)/(1-r+s);else return null;const a=zn(.12,.88,i),o=n*.26,u=n*.98,l=u-Math.sin(i*Math.PI)*(u-o);return{x:a*t,y:l,peakness:Math.sin(i*Math.PI)}}function Nh(e){return function(){e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function Xl(e,t){const n=Nh(20260809),r=Math.max(28,Math.round(e*t/7e3)),s=[];for(let i=0;i<r;i++)s.push({x:n(),y:n()*.7,r:n()*1.2+.3,tw:n()*Math.PI*2,sp:.6+n()*1.4,big:n()<.06});return s}function Qx(){const e=Nh(7),t=[];for(let n=0;n<6;n++)t.push({x:e(),y:.12+e()*.4,s:.55+e()*1.2,speed:18e-6+e()*35e-6,seed:e()*1e3,drift:e()*.035+.008});return t}function Zx(e,t,n,r){const s=e.createLinearGradient(0,0,0,r);s.addColorStop(0,Ta(t.top)),s.addColorStop(.55,Ta(t.mid)),s.addColorStop(1,Ta(t.hor)),e.fillStyle=s,e.fillRect(0,0,n,r)}function Jx(e,t,n,r,s,i){let a=0;if(t<.22?a=mi(1-t/.22):t>.8&&(a=mi((t-.8)/.2)),!(a<=.01))for(const o of n){const u=.55+.45*Math.sin(i*o.sp+o.tw),l=a*u;if(l<.02)continue;e.fillStyle=`rgba(255,248,228,${l})`;const c=o.big?o.r*1.8:o.r;e.beginPath(),e.arc(o.x*r,o.y*s,c,0,Math.PI*2),e.fill(),o.big&&(e.fillStyle=`rgba(255,240,210,${l*.35})`,e.fillRect(o.x*r-c*4,o.y*s-.4,c*8,.8),e.fillRect(o.x*r-.4,o.y*s-c*4,.8,c*8))}}function eb(e,t,n){if(!t)return;const{x:r,y:s,peakness:i}=t,a=28+i*8,o=e.createRadialGradient(r,s,a*.4,r,s,a*5);o.addColorStop(0,"rgba(255,236,190,0.55)"),o.addColorStop(.4,"rgba(255,210,150,0.16)"),o.addColorStop(1,"rgba(255,200,140,0)"),e.fillStyle=o,e.fillRect(r-a*5,s-a*5,a*10,a*10);const u=e.createRadialGradient(r,s,0,r,s,a),l=n??[255,236,180],c=n?Vn(n,[255,214,150],.5):[255,214,150];u.addColorStop(0,"rgba(255,252,238,1)"),u.addColorStop(.7,Er(l,1)),u.addColorStop(1,Er(c,.9)),e.fillStyle=u,e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.fill()}function tb(e,t){if(!t)return;const{x:n,y:r}=t,s=24,i=e.createRadialGradient(n,r,s*.8,n,r,s*5);i.addColorStop(0,"rgba(220,232,255,0.38)"),i.addColorStop(.5,"rgba(220,232,255,0.1)"),i.addColorStop(1,"rgba(220,232,255,0)"),e.fillStyle=i,e.fillRect(n-s*5,r-s*5,s*10,s*10);const a=e.createRadialGradient(n-s*.25,r-s*.3,s*.2,n,r,s);a.addColorStop(0,"rgba(255,254,247,1)"),a.addColorStop(.7,"rgba(244,242,232,1)"),a.addColorStop(1,"rgba(214,222,236,1)"),e.fillStyle=a,e.beginPath(),e.arc(n,r,s,0,Math.PI*2),e.fill(),e.fillStyle="rgba(150,160,180,0.16)";const o=[[-10,-6,4],[5,3,5],[-3,9,3],[11,-8,3]];for(const[u,l,c]of o)e.beginPath(),e.arc(n+u,r+l,c,0,Math.PI*2),e.fill()}function nb(e,t,n,r,s,i){const a=18*r,o=[[0,0,1],[-1.1,.1,.8],[1.1,.1,.8],[-.5,-.5,.7],[.6,-.45,.75],[-1.8,.3,.6],[1.8,.3,.6]];e.save(),e.translate(t,n),e.fillStyle=Er([s[0]*.7,s[1]*.7,s[2]*.78],i*.9);for(const[u,l,c]of o)e.beginPath(),e.arc(u*a,l*a*1.1+a*.45,a*c*1.05,0,Math.PI*2),e.fill();e.fillStyle=Er(s,i);for(const[u,l,c]of o)e.beginPath(),e.arc(u*a,l*a,a*c,0,Math.PI*2),e.fill();e.restore()}function rb(e,t,n,r,s,i,a,o,u){const l=a(t);if(l<.02)return;const c=Vn(o.hor,[255,255,255],.35),f=Vn(o.mid,[20,20,30],.45),h=u?f:c;for(let d=0;d<n.length;d++){const m=n[d],p=(m.x+i*m.speed)%1.2-.1,g=m.y+Math.sin(i*1e-4+m.seed)*m.drift;d/n.length<l&&nb(e,p*r,g*s,m.s,h,Vs(l*.92,0,.92))}}const dr=[];let Dn=[];const Gr=[];let On=[];const qi=[],Br=[];let Kr=[];function ib(e,t,n,r,s,i){if(s<.04)return;const a=r*(.02+s*.07),o=.12+s*.73,u=t-r*o,l=t+r*o,c=n-Math.sqrt(Math.max(0,r*r-r*o*(r*o))),f=n-r-a,h=(c+f)/2;e.save(),e.beginPath(),e.moveTo(u,c),e.bezierCurveTo(u,h,t-r*.3,f,t,f),e.bezierCurveTo(t+r*.3,f,l,h,l,c),e.quadraticCurveTo(t,n-r*.78,u,c),e.closePath();const d=e.createLinearGradient(0,f,0,c);d.addColorStop(0,"rgba(255,255,255,0.98)"),d.addColorStop(.65,"rgba(245,250,255,0.95)"),d.addColorStop(1,"rgba(218,230,246,0.9)"),e.fillStyle=d,e.fill(),e.strokeStyle="rgba(168,192,225,0.28)",e.lineWidth=1.5,e.beginPath(),e.moveTo(u,c),e.quadraticCurveTo(t,n-r*.78,l,c),e.stroke(),e.restore()}function Aa(e,t,n,r,s){const i=Math.sin(r),a=Math.cos(r);return{x:e+Math.sin(s)*i*n,y:t-a*n}}function sb(e,t,n,r){e.save(),e.beginPath(),e.arc(t,n,r*.99,0,Math.PI*2),e.clip();const s=e.createRadialGradient(t-r*.35,n-r*.4,0,t-r*.35,n-r*.4,r*.8);s.addColorStop(0,"rgba(255,255,255,0.4)"),s.addColorStop(.5,"rgba(255,255,255,0.12)"),s.addColorStop(1,"rgba(255,255,255,0)"),e.fillStyle=s,e.fillRect(t-r,n-r,r*2,r*2),e.strokeStyle="rgba(255,255,255,0.55)",e.lineWidth=1.8,e.beginPath(),e.arc(t,n,r*.92,Math.PI*1.15,Math.PI*1.5),e.stroke(),e.restore()}function ab(e,t){if(t.length!==0){e.save();for(let n=t.length-1;n>=0;n--){const r=t[n];if(r.x+=r.vx,r.y+=r.vy,r.vy+=.14,r.vx*=.985,r.vy*=.99,r.life--,r.life<=0){t.splice(n,1);continue}const s=r.life/r.maxLife;e.fillStyle=`rgba(248,250,255,${(.9*s).toFixed(3)})`,e.beginPath(),e.arc(r.x,r.y,r.r*(.5+.5*s),0,Math.PI*2),e.fill()}e.restore()}}function Rh(e,t){e.save();for(let n=t.length-1;n>=0;n--){const r=t[n];if(r.x+=r.vx,r.y+=r.vy,r.vy+=.18,r.life--,r.life<=0){t.splice(n,1);continue}const s=Math.min(1,r.life/20)*.8;e.fillStyle=`rgba(215,238,255,${s})`,e.beginPath(),e.arc(r.x,r.y,1.3,0,Math.PI*2),e.fill()}e.restore()}function ob(e,t,n,r,s,i){e.save(),e.beginPath(),e.arc(t,n,r*.99,0,Math.PI*2),e.clip();for(let a=s.length-1;a>=0;a--){const o=s[a];if(o.prog+=o.speed,o.life--,o.prog>Math.PI*1.05||o.life<=0){s.splice(a,1);continue}const u=7;for(let f=0;f<u;f++){const h=o.prog-o.len*(f/u),d=o.prog-o.len*((f+1)/u),m=Aa(t,n,r,h,o.theta),p=Aa(t,n,r,d,o.theta),g=(1-f/u)*.42;e.strokeStyle=`rgba(200,228,250,${g})`,e.lineWidth=o.thick*(1-f/u*.7),e.lineCap="round",e.beginPath(),e.moveTo(m.x,m.y),e.lineTo(p.x,p.y),e.stroke()}const l=Aa(t,n,r,o.prog,o.theta),c=e.createRadialGradient(l.x-1.2,l.y-1.2,0,l.x,l.y,o.thick*1.3);c.addColorStop(0,"rgba(255,255,255,0.85)"),c.addColorStop(.4,"rgba(180,215,240,0.5)"),c.addColorStop(1,"rgba(120,165,205,0.25)"),e.fillStyle=c,e.beginPath(),e.arc(l.x,l.y,o.thick*1.1,0,Math.PI*2),e.fill()}e.restore()}function ub(e,t,n,r){for(;dr.length<t.length;)dr.push([]);for(;Dn.length<t.length;)Dn.push(0);for(;Kr.length<t.length;)Kr.push(.3);for(;Gr.length<t.length;)Gr.push([]);for(;On.length<t.length;)On.push(0);for(let s=0;s<t.length;s++){const i=t[s];if(n.particles==="snow"){const a=i.snow!==void 0?i.snow:Math.min(1,(Kr[s]??.3)+8e-4);Kr[s]=a,ib(e,i.x,i.y,i.r,a)}else if(n.particles==="rain"){if(sb(e,i.x,i.y,i.r),Dn[s]=Dn[s]-1,Dn[s]<=0&&dr[s].length<3){const a=Math.random()<.5?-1:1;dr[s].push({theta:a*(.2+Math.random()*.3),prog:.1+Math.random()*.2,speed:.012+Math.random()*.012,len:.3+Math.random()*.3,thick:1.6+Math.random()*1.4,life:250+Math.random()*200}),Dn[s]=40+Math.random()*60}if(ob(e,i.x,i.y,i.r,dr[s]),On[s]=On[s]-1,On[s]<=0){const a=i.x+(Math.random()-.5)*i.r*1.2,o=a-i.x,u=i.y-Math.sqrt(Math.max(0,i.r*i.r-o*o)),l=4+Math.floor(Math.random()*3);for(let c=0;c<l;c++){const f=o<0?-1:1;Gr[s].push({x:a,y:u,vx:f*(.5+Math.random()*2)*(Math.random()<.5?-1:1),vy:-(1.5+Math.random()*2.5),life:18+Math.floor(Math.random()*14)})}On[s]=30+Math.floor(Math.random()*50)}Rh(e,Gr[s])}}}function lb(e,t,n,r,s){e.save(),e.strokeStyle=s?"rgba(205,224,244,0.42)":"rgba(210,224,238,0.3)",e.lineWidth=s?1:.7,e.lineCap="round";const i=s?.013:.007;for(const a of r){a.y+=a.v*i,a.y>1&&(a.y-=1,a.x=Math.random());const o=a.x*t,u=a.y*n;e.beginPath(),e.moveTo(o,u),e.lineTo(o,u+a.len),e.stroke()}e.restore()}function cb(e,t,n,r,s){e.save(),e.fillStyle="rgba(250,250,255,0.85)";for(const i of r){i.y+=i.v*.004;const a=(i.x+Math.sin(s*5e-4+i.phase)*.02)*t,o=i.y*n;i.y>1&&(i.y-=1),e.beginPath(),e.arc(a,o,i.r,0,Math.PI*2),e.fill()}e.restore()}function db(e,t,n,r,s){const i=e.createLinearGradient(0,n*.4,0,n),a=Vn(s.hor,[255,255,255],.3);i.addColorStop(0,Er(a,0)),i.addColorStop(1,Er(a,r)),e.fillStyle=i,e.fillRect(0,n*.4,t,n*.6)}let or=0,Ql=0;function fb(e,t,n,r,s){if(s>Ql&&(or=1,Ql=s+1400+Math.random()*2600),or*=.86,or<.02){or=0;return}if(e.fillStyle=`rgba(255,255,255,${or*.5})`,e.fillRect(0,0,t,n),or>.6){e.save(),e.strokeStyle="rgba(255,255,255,0.95)",e.lineWidth=2.2,e.shadowColor="rgba(220,230,255,0.9)",e.shadowBlur=22;let i=t*(.3+Math.random()*.4),a=0;for(e.beginPath(),e.moveTo(i,a);a<n*.6;)i+=(Math.random()-.5)*60,a+=24+Math.random()*30,e.lineTo(i,a);e.stroke(),e.restore()}}function hb(e,t,n,r){const s=e.getContext("2d");if(!s)return()=>{};const i=s,a=n;let o=0,u=0,l=1,c=Xl(1,1);const f=Qx();let h=[],d=[],m=0,p=0,g=!0;const y=performance.now(),v=window.matchMedia("(prefers-reduced-motion: reduce)").matches;function T(){const I=a.getBoundingClientRect();if(l=Math.min(window.devicePixelRatio||1,2),o=Math.max(1,I.width),u=Math.max(1,I.height),e.width=Math.floor(o*l),e.height=Math.floor(u*l),e.style.width=o+"px",e.style.height=u+"px",i.setTransform(l,0,0,l,0,0),c=Xl(o,u),r.particles==="rain"&&h.length===0){const S=r.weather==="storm",M=S?140:70;for(let N=0;N<M;N++)h.push({x:Math.random(),y:Math.random(),len:S?12+Math.random()*14:6+Math.random()*8,v:S?.9+Math.random()*.4:.5+Math.random()*.3})}if(r.particles==="snow"&&d.length===0)for(let S=0;S<120;S++)d.push({x:Math.random(),y:Math.random(),r:.8+Math.random()*1.6,v:.5+Math.random()*.8,phase:Math.random()*Math.PI*2})}function C(){const I=t.scrollHeight-t.clientHeight;m=I>0?Vs(t.scrollTop/I,0,1):0}function E(I){if(!g)return;const S=m,M=v?0:(I-y)/1e3,N=Gx(S,r.sky);Zx(i,N,o,u),Jx(i,S,c,o,u,M),tb(i,Xx(S,o,u,.92,.08)),eb(i,Kx(S,o,u,.16,.88),r.sunTint),rb(i,S,f,o,u,I,r.cloudCover,N,r.weather==="storm"),r.particles==="rain"&&lb(i,o,u,h,r.weather==="storm"),r.particles==="snow"&&cb(i,o,u,d,I),r.fogAlpha>0&&db(i,o,u,r.fogAlpha,N),r.lightning&&fb(i,o,u,!0,I),v||(p=requestAnimationFrame(E))}const k=()=>C(),_=new ResizeObserver(()=>{T(),C()});_.observe(a),T(),C();let A;if(v){let I=!1;A=()=>{C(),I||(I=!0,requestAnimationFrame(()=>{I=!1,E(performance.now())}))},t.addEventListener("scroll",A,{passive:!0}),E(performance.now())}else A=k,t.addEventListener("scroll",A,{passive:!0}),p=requestAnimationFrame(E);return()=>{g=!1,cancelAnimationFrame(p),_.disconnect(),t.removeEventListener("scroll",A)}}function mb(e,t,n,r,s,i){const a=()=>{dr.length=0,Kr.length=0,Dn.length=0,Gr.length=0,On.length=0,qi.length=0,Br.length=0;const v=e.getContext("2d");v&&v.clearRect(0,0,e.width,e.height)};if(a(),window.matchMedia("(prefers-reduced-motion: reduce)").matches)return()=>{};if(n.particles!=="rain"&&n.particles!=="snow")return()=>{};const u=e.getContext("2d");if(!u)return()=>{};const l=u;let c=0,f=0,h=1,d=0,m=!0;function p(){const v=t.getBoundingClientRect();h=Math.min(window.devicePixelRatio||1,2),c=Math.max(1,v.width),f=Math.max(1,v.height),e.width=Math.floor(c*h),e.height=Math.floor(f*h),e.style.width=c+"px",e.style.height=f+"px",l.setTransform(h,0,0,h,0,0)}function g(v){if(!m)return;l.clearRect(0,0,c,f);const T=r();if(ub(l,T,n),s){for(const C of s()){const E=3+Math.min(5,Math.floor(C.speed/3));for(let k=0;k<E;k++)qi.push({x:C.x,y:C.y,vx:(Math.random()-.5)*3.2,vy:-(1.5+Math.random()*2.5),life:16+Math.floor(Math.random()*12)})}qi.length>0&&Rh(l,qi)}if(i){for(const C of i()){const E=1+Math.min(2,Math.round(C.amount*40));for(let k=0;k<E;k++){const _=55+Math.floor(Math.random()*40);Br.push({x:C.x+(Math.random()-.5)*8,y:C.y+(Math.random()-.5)*6,vx:C.vx*.6+(Math.random()-.5)*.8,vy:C.vy*.6-Math.random()*.5,life:_,maxLife:_,r:1.2+Math.random()*2.2})}}for(;Br.length>240;)Br.shift();ab(l,Br)}d=requestAnimationFrame(g)}const y=new ResizeObserver(p);return y.observe(t),p(),d=requestAnimationFrame(g),()=>{m=!1,cancelAnimationFrame(d),y.disconnect(),a()}}const pb=w.lazy(()=>Se(()=>import("./CourseSearchPanel-Bkbkr4aJ.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(e=>({default:e.CourseSearchPanel})));function gb(e){const t=Ge(),[n,r]=w.useState("import"),[s,i]=w.useState("study"),a=w.useRef(null),o=w.useRef(null),u=Math.round(e.overallMastery*100),c=!bu(),f=w.useRef([]),h=w.useRef(N=>{f.current.push(...N),f.current.length>64&&f.current.splice(0,f.current.length-64)}).current,d=w.useRef([]),m=w.useRef(new Map),p=w.useRef(N=>{d.current.push(...N),d.current.length>96&&d.current.splice(0,d.current.length-96)}).current,g=e.sections.filter(N=>(N.world??"study")===s),y=e.sections.some(N=>N.world==="practice"),[v,T]=w.useState(null);w.useEffect(()=>{T(Yx(e.courseId))},[e.courseId]);const C=v?Ih[v]??null:null;w.useEffect(()=>(Cl({nav:a.current,visible:n==="map",weather:(C==null?void 0:C.weather)??"clear"}),()=>{Cl({visible:!1,nav:null})}),[n,C,a]);const[E,k]=w.useState(!1);w.useEffect(()=>{if(!e.selectedNodeId)return;const N=o.current;if(!N)return;const j=N.querySelector(`[data-node-id="${CSS.escape(e.selectedNodeId)}"]`);if(!j)return;const P=N.getBoundingClientRect(),L=j.getBoundingClientRect();(L.top<P.top+60||L.bottom>P.bottom-60)&&j.scrollIntoView({behavior:"smooth",block:"center"})},[e.selectedNodeId]);const _=w.useRef(null);w.useEffect(()=>{k(!1),e.courseId&&(_.current===null||_.current!==e.courseId)&&(r("map"),i("study")),!e.courseId&&_.current!==null&&(r("import"),i("study")),_.current=e.courseId},[e.courseId]);const[A,I]=w.useState(null),S=w.useRef({}),M=w.useRef(null);return w.useEffect(()=>{var L,F;const N=S.current,j={};let P=null;for(const V of e.tree){const B=((L=e.progressMap[V.id])==null?void 0:L.status)??"locked";j[V.id]=B,N[V.id]==="locked"&&B!=="locked"&&!P&&(P=V.id)}if(P&&Object.keys(N).length>0){const V=(F=a.current)==null?void 0:F.querySelector(`[data-testid="map-node-${P.slice(0,8)}"], [data-testid="exam-node-${P.slice(0,8)}"]`),B=V==null?void 0:V.getBoundingClientRect(),q=!!B&&B.width>0&&B.left>=0&&B.right<=window.innerWidth&&B.top>=0;is("unlock",q?{origin:{x:B.left+B.width/2,y:B.top+4}}:void 0)}S.current=j},[e.tree,e.progressMap]),x.jsxs("nav",{ref:a,className:`map-rail-scope relative h-full flex flex-col bg-surface-rail shrink-0 overflow-hidden ${e.fullWidth?"w-full":"w-[300px]"}`,"data-testid":"map-rail",children:[C&&x.jsxs(x.Fragment,{children:[x.jsx(bb,{scrollRef:o,navRef:a,preset:C}),x.jsx(yb,{scrollRef:o,navRef:a,preset:C,getImpacts:()=>f.current.splice(0),getFlakes:()=>d.current.splice(0),orbSnowRef:m})]}),x.jsxs("div",{className:"absolute top-0 left-0 right-0 z-40 px-2 pt-2 pb-2 pointer-events-none [&_button]:pointer-events-auto","data-testid":"map-rail-topbar",children:[x.jsxs("div",{className:"flex p-1 rounded-lg gap-1 mb-2",style:{background:"rgb(var(--surface-rail-rgb) / 0.55)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},children:[x.jsxs("button",{onClick:()=>r("map"),"data-testid":"map-tab-map",className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n==="map"?"bg-brand/20 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(dh,{className:"w-3 h-3"})," ",t("map.tab.map")]}),x.jsxs("button",{onClick:()=>r("import"),"data-testid":"map-tab-import",className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n==="import"?"bg-brand/20 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(Us,{className:"w-3 h-3"})," ",t("map.tab.import")]})]}),n==="map"&&x.jsxs("div",{className:"px-3 py-2 rounded-lg pointer-events-auto",style:{background:"rgb(var(--surface-rail-rgb) / 0.55)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},children:[x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("h2",{className:"text-body font-extrabold text-white truncate flex-1","data-tooltip":e.courseTitle??"",children:e.courseTitle??t("map.course.none")}),e.availableLanguages.length>0&&x.jsx(Sb,{available:e.availableLanguages,current:e.currentLocale,onChange:e.onLocaleChange}),e.courseId&&x.jsx("button",{onClick:N=>{const j=N.currentTarget.getBoundingClientRect();I({id:e.courseId,title:e.courseTitle??"",rect:j})},"data-testid":"course-delete-btn","aria-label":t("import.delete.current"),"data-tooltip":t("import.delete.current"),className:"shrink-0 flex items-center justify-center w-5 h-5 rounded-md text-white/40 hover:text-warning hover:bg-white/10 transition-colors",children:x.jsx(ph,{className:"w-3 h-3"})})]}),x.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[x.jsx("div",{className:"flex-1 h-2.5 bg-black/40 rounded-full overflow-hidden ring-1 ring-white/10",children:x.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${u>=100?"bg-gold":"bg-brand"}`,style:{width:`${Math.max(3,u)}%`}})}),x.jsxs("span",{className:"text-label font-extrabold tabular-nums text-white drop-shadow-[0_1px_3px_rgba(0,0,0,0.6)]",children:[u,"%"]})]}),x.jsxs("div",{className:"flex items-center justify-end gap-1.5 mt-1.5 text-caption",children:[x.jsxs("button",{onClick:()=>k(!0),"data-testid":"map-search-btn",className:"flex items-center gap-1 px-1.5 py-0.5 rounded-full bg-white/5 ring-1 ring-white/10 hover:bg-white/10 transition-colors",children:[x.jsx(ux,{className:"w-3 h-3 text-white/50"}),x.jsx("span",{className:"font-bold text-white/60",children:t("map.search.label")})]}),x.jsxs("button",{onClick:e.onOpenReview,className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full transition-colors ${e.dueCount>0?"bg-review/20 ring-1 ring-review/30 hover:bg-review/30":"bg-white/5 ring-1 ring-white/10 hover:bg-white/10"}`,"data-testid":"map-review-badge",children:[x.jsx(vn,{className:`w-3 h-3 ${e.dueCount>0?"text-review":"text-white/50"}`}),x.jsx("span",{className:`font-bold ${e.dueCount>0?"text-review":"text-white/60"}`,children:t("map.review.label")}),e.dueCount>0&&x.jsx("span",{className:"font-extrabold text-review tabular-nums",children:e.dueCount})]})]}),y&&x.jsxs("div",{className:"flex gap-1 mt-1.5 p-0.5 rounded-lg bg-black/30",children:[x.jsxs("button",{onClick:()=>i("study"),"data-testid":"world-tab-study",className:`flex-1 flex items-center justify-center gap-1 py-1 rounded-md text-caption font-bold transition-colors ${s==="study"?"bg-brand/30 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(vn,{className:"w-3 h-3"})," ",t("map.world.study")]}),x.jsxs("button",{onClick:()=>i("practice"),"data-testid":"world-tab-practice",className:`flex-1 flex items-center justify-center gap-1 py-1 rounded-md text-caption font-bold transition-colors ${s==="practice"?"bg-accent/30 text-accent":"text-white/50 hover:text-white/80"}`,children:[x.jsx(xh,{className:"w-3 h-3"})," ",t("map.world.practice")]})]})]})]}),x.jsx("div",{className:"absolute inset-0 overflow-hidden z-10",children:x.jsxs("div",{className:"flex h-full transition-transform duration-300",style:{transform:n==="map"?"translateX(0)":"translateX(-50%)",width:"200%"},children:[x.jsx("div",{className:"w-1/2 h-full relative",children:x.jsx("div",{ref:o,className:"map-path h-full overflow-y-auto overflow-x-hidden px-2 pt-48 pb-4","data-testid":"map-path",onPointerDown:N=>{M.current={x:N.clientX,y:N.clientY}},onClick:N=>{const j=M.current;M.current=null,!(!j||Math.hypot(N.clientX-j.x,N.clientY-j.y)>6)&&(N.target.closest("button, a, input, textarea, select")||Wg(N.clientX,N.clientY))},children:x.jsxs("div",{className:`map-sky-content ${C?`env-${C.season} env-${C.weather}`:""}`,children:[e.streaming&&x.jsxs("div",{className:"mb-3 mx-1 px-3 py-2 rounded-xl bg-brand/10 border border-brand/30 flex items-center gap-2 text-label text-brand font-medium backdrop-blur-sm","data-testid":"streaming-notice",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),t("map.streaming.notice")]}),e.sections.length===0?e.courseTitle?x.jsxs("div",{className:"text-center text-label text-white/60 mt-8 px-4 flex items-center justify-center gap-2",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),t("map.generating")]}):x.jsxs("button",{onClick:()=>r("import"),className:"block w-full mt-8 mx-auto p-4 rounded-2xl border-2 border-dashed border-brand/40 hover:border-brand hover:bg-brand/5 transition-all text-center group","data-testid":"map-empty-cta",children:[x.jsx("div",{className:"text-3xl mb-2 group-hover:scale-110 transition-transform",children:"🗺️"}),x.jsx("div",{className:"text-body font-bold text-white/90 mb-1",children:t("map.empty.cta.title")}),x.jsx("div",{className:"text-label text-white/60 leading-relaxed",children:t("map.empty.cta.desc")}),x.jsx("div",{className:"mt-2 text-caption text-brand font-bold",children:t("map.empty.cta.btn")})]}):g.length===0?x.jsx("div",{className:"text-center text-label text-white/60 mt-8 px-4",children:t(s==="practice"?"map.empty.practice":"map.generating")}):x.jsx("div",{className:"space-y-6 pt-2",children:g.map((N,j)=>x.jsx(Eb,{section:N,sectionIndex:j,tree:e.tree,progressMap:e.progressMap,selectedNodeId:e.selectedNodeId,dueNodeIds:e.dueNodeIds,streamingNodeIds:e.streamingNodeIds,onJumpNode:e.onJumpNode,physics:c,physicsWeather:(C==null?void 0:C.weather)??"clear",scrollRef:o,navRef:a,onImpacts:h,onFlakes:p,orbSnowRef:m},N.id))})]})})}),x.jsx("div",{className:"w-1/2 h-full overflow-y-auto px-3 pt-20 pb-3 space-y-2.5",children:x.jsx(xb,{courses:e.courses,selectedCourseId:e.courseId,onSelectCourse:N=>{e.onSelectCourse(N),r("map")},onDeleteCourse:(N,j,P)=>I({id:N,title:j,rect:P}),onCoursesChanged:e.onCoursesChanged})})]})}),E&&e.courseId&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(pb,{sections:e.sections,tree:e.tree,progressMap:e.progressMap,selectedNodeId:e.selectedNodeId,onJump:N=>{i(N.world??"study"),k(!1),bo(null,null,N.id),e.onJumpNode(N.id)},onClose:()=>k(!1)})}),A&&x.jsx(kh,{anchorRect:A.rect,message:`${A.title} — ${t("import.delete.confirm")}`,danger:!0,confirmLabel:t("import.delete"),testid:"course-delete-confirm",onConfirm:()=>{e.onDeleteCourse(A.id),I(null)},onCancel:()=>I(null)})]})}function xb({courses:e,selectedCourseId:t,onSelectCourse:n,onDeleteCourse:r,onCoursesChanged:s}){const i=Ge(),[a,o]=w.useState("url"),[u,l]=w.useState(!1),[c,f]=w.useState(""),[h,d]=w.useState(""),m=w.useRef(null),p=w.useRef(null),g=w.useRef(null),[y,v]=w.useState(""),[T,C]=w.useState(""),[E,k]=w.useState(!1),[_,A]=w.useState(null),[I,S]=w.useState(null),[M,N]=w.useState(null),[j,P]=w.useState(null),[L,F]=w.useState([]),[,V]=w.useState(0),B=w.useRef(null);w.useEffect(()=>{const re=le.on("import:progress",xe=>{F(ve=>{const Le=/\d+\/\d+/.test(xe),Be=ve[ve.length-1];if(Le&&Be&&Be.status==="working"){const Oe=[...ve];return Oe[Oe.length-1]={...Be,msg:xe},Oe}const Ee=ve.map(Oe=>Oe.status==="working"?{...Oe,status:"done"}:Oe);return Ee.push({msg:xe,status:"working",ts:Date.now()}),Ee})}),ne=setInterval(()=>V(xe=>xe+1),1e3);return()=>{re(),clearInterval(ne)}},[]),w.useEffect(()=>le.on("import:done",ne=>{k(!1),Ot(!1),ne.cancelled||Kg(ne.ok),N(ne.ok?null:ne.planId??null),ne.ok?(S(`${i("import.success.folder")}: ${ne.title??""}${ne.reused?`(${i("import.success.reused")})`:""}`),P(ne.courseId?{courseId:ne.courseId,packable:ne.packable??!1}:null),s()):ne.cancelled?(F([]),A(null),S(i("import.cancelled"))):A(ne.error??"导入失败")}),[s,i]),w.useEffect(()=>{const re=B.current;re&&(re.scrollTop=re.scrollHeight)},[L]);const q=async()=>{if(!(!c.trim()||E)){A(null),S(null),F([]);try{await le.importUrl(c.trim()),k(!0),Ot(!0)}catch(re){A(re instanceof Error?re.message:String(re))}}},R=async()=>{if(!(!y.trim()||E)){A(null),S(null),F([]);try{await le.importText({name:T.trim()||void 0,text:y.trim()}),k(!0),Ot(!0)}catch(re){A(re instanceof Error?re.message:String(re))}}},$=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=p.current)==null||ne.click();return}await le.importEpub().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},K=async re=>{if(!(!re||E)){A(null),S(null),F([]);try{const ne=new Uint8Array(await re.arrayBuffer());let xe="";for(let Le=0;Le<ne.length;Le+=32768)xe+=String.fromCharCode(...ne.subarray(Le,Le+32768));await le.importEpub({fileName:re.name,contentBase64:btoa(xe)})&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},D=async()=>{if(E)return;if(A(null),S(null),F([]),!on){const ne=h.trim();if(!ne){A(i("import.folder.pathRequired"));return}try{await le.importLocalFolder(ne)&&k(!0),Ot(!0)}catch(xe){A(xe instanceof Error?xe.message:String(xe))}return}await le.importLocalFolder()&&(k(!0),Ot(!0))},Z=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=m.current)==null||ne.click();return}await le.importPack().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},oe=async re=>{if(!(!re||E)){A(null),S(null),F([]);try{const ne=await re.text();await le.importPack({fileName:re.name,content:ne})&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},z=async()=>{var ne;if(E)return;if(A(null),S(null),F([]),!on){(ne=g.current)==null||ne.click();return}await le.importAudio().catch(xe=>(A(xe instanceof Error?xe.message:String(xe)),null))&&(k(!0),Ot(!0))},J=async re=>{if(!(!re||re.length===0||E)){A(null),S(null),F([]);try{const ne=[];for(const ve of Array.from(re)){const Le=new Uint8Array(await ve.arrayBuffer());let Be="";for(let Ee=0;Ee<Le.length;Ee+=32768)Be+=String.fromCharCode(...Le.subarray(Ee,Ee+32768));ne.push({fileName:ve.name,contentBase64:btoa(Be)})}await le.importAudio(ne)&&k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},X=async re=>{if(!E){A(null),F([]);try{await le.importResume(re),k(!0),Ot(!0)}catch(ne){A(ne instanceof Error?ne.message:String(ne))}}},ce=async re=>{try{const ne=await le.exportPack(re);ne!=null&&ne.content&&ne.fileName?(he(ne.fileName,ne.content),S(i("import.pack.exported",{path:ne.fileName}))):ne!=null&&ne.path&&S(i("import.pack.exported",{path:ne.path}))}catch(ne){A(ne instanceof Error?ne.message:String(ne))}},he=(re,ne)=>{const xe=new Blob([ne],{type:"application/json"}),ve=URL.createObjectURL(xe),Le=document.createElement("a");Le.href=ve,Le.download=re,Le.click(),setTimeout(()=>URL.revokeObjectURL(ve),5e3)};return x.jsxs(x.Fragment,{children:[e.length===0?x.jsxs("div",{className:"text-center py-10",children:[x.jsx("div",{className:"text-3xl mb-2 opacity-30",children:"📚"}),x.jsx("p",{className:"text-label text-white/45 leading-relaxed",children:i("import.empty")})]}):x.jsx("div",{className:"space-y-2","data-testid":"course-list",children:e.map(re=>{const ne=re.id===t;return x.jsxs("div",{"data-testid":"course-row",className:`relative rounded-xl transition-all duration-150 group ${ne?"bg-brand/12 ring-1 ring-brand/40":"bg-white/5 hover:bg-white/10 hover:-translate-y-0.5"}`,children:[x.jsx("button",{onClick:()=>n(re.id),className:"w-full text-left p-3",children:x.jsxs("div",{className:"flex items-start justify-between gap-2",children:[x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:`text-body font-bold truncate ${ne?"text-brand":"text-white/90"}`,children:re.title}),x.jsx("div",{className:"text-caption text-white/40 truncate mt-0.5",children:re.repoName})]}),ne&&x.jsx("span",{className:"shrink-0 w-5 h-5 rounded-full bg-brand flex items-center justify-center",children:x.jsx(Tn,{className:"w-3 h-3 text-white"})})]})}),x.jsxs("div",{className:"absolute bottom-1.5 right-2 flex items-center gap-2.5 opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 focus-within:opacity-100 transition-opacity",children:[x.jsxs("button",{onClick:xe=>{xe.stopPropagation(),A(null),S(null),le.exportPack(re.id).then(ve=>{ve!=null&&ve.content&&ve.fileName?(he(ve.fileName,ve.content),S(i("import.pack.exported",{path:ve.fileName}))):ve!=null&&ve.path&&S(i("import.pack.exported",{path:ve.path}))}).catch(ve=>{A(ve instanceof Error?ve.message:String(ve))})},"data-testid":"course-row-export",className:"text-caption text-white/40 hover:text-brand flex items-center gap-0.5",children:[x.jsx(jl,{className:"w-2.5 h-2.5"})," ",i("import.export")]}),x.jsxs("button",{onClick:xe=>{xe.stopPropagation();const ve=xe.currentTarget.getBoundingClientRect();r(re.id,re.title,ve)},"data-testid":"course-row-delete",className:"text-caption text-white/40 hover:text-warning flex items-center gap-0.5",children:[x.jsx(ph,{className:"w-2.5 h-2.5"})," ",i("import.delete")]})]})]},re.id)})}),x.jsxs("div",{className:e.length>0?"mt-6":"",children:[x.jsxs("button",{onClick:()=>l(!u),className:`w-full flex items-center justify-center gap-1.5 py-3 rounded-xl border-2 border-dashed transition-all text-body font-bold ${u?"border-brand/40 bg-brand/8 text-brand":"border-white/20 hover:border-brand/50 hover:bg-brand/8 text-white/70 hover:text-brand"}`,children:[x.jsx(hh,{className:`w-4 h-4 transition-transform ${u?"rotate-45":""}`})," ",i("import.cta")]}),u&&x.jsxs("div",{className:"mt-3 space-y-3",children:[E?x.jsxs("div",{className:"rounded-xl bg-black/30 border border-brand/30 p-4","data-testid":"import-progress",children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2.5",children:[x.jsx("span",{className:"inline-block w-4 h-4 border-2 border-brand border-t-transparent rounded-full animate-spin shrink-0"}),x.jsx("span",{className:"text-body font-bold text-white/90",children:i("import.progress.title")}),x.jsx("button",{onClick:()=>{le.importCancel()},"data-testid":"import-cancel-btn",className:"ml-auto text-caption text-white/50 hover:text-warning transition-colors",children:i("import.progress.cancel")})]}),x.jsx("div",{className:"text-caption text-white/40 mb-2.5",children:i("import.progress.note")}),(a==="url"?c.trim():a==="markdown"&&T.trim())?x.jsx("div",{className:"text-caption text-white/40 font-mono truncate mb-2.5",children:a==="url"?c.trim():T.trim()}):null,x.jsx("div",{ref:B,className:"space-y-1.5 max-h-[40vh] overflow-y-auto pr-1",children:L.length===0?x.jsx("div",{className:"text-caption text-white/50 py-1",children:i("import.progress.starting")}):L.map((re,ne)=>x.jsxs("div",{className:"flex items-start gap-1.5 text-caption",children:[re.status==="done"?x.jsx(Tn,{className:"w-3 h-3 text-brand shrink-0 mt-px"}):x.jsx("span",{className:"inline-block w-2.5 h-2.5 border-2 border-brand border-t-transparent rounded-full animate-spin shrink-0 mt-px"}),x.jsxs("span",{className:re.status==="done"?"text-white/40":"text-white/90",children:[re.msg,re.status==="working"&&x.jsxs("span",{className:"text-white/35 ml-1",children:["(",i("import.progress.elapsed",{s:Math.floor((Date.now()-re.ts)/1e3)}),")"]})]})]},ne))})]}):x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"@container flex flex-wrap gap-1 p-1 bg-white/5 rounded-lg",children:[{k:"url",label:i("import.tab.url"),icon:Q1},{k:"markdown",label:i("import.tab.md"),icon:Us},{k:"folder",label:i("import.tab.folder"),icon:z1},{k:"epub",label:i("import.tab.epub"),icon:vn},{k:"audio",label:i("import.tab.audio"),icon:ss},{k:"pack",label:i("import.tab.pack"),icon:jl}].map(({k:re,label:ne,icon:xe})=>x.jsxs("button",{onClick:()=>o(re),className:`min-w-[72px] flex-1 flex items-center justify-center gap-0.5 py-1.5 px-0.5 rounded-md font-bold transition-colors ${a===re?"bg-brand/15 text-brand":"text-white/50 hover:text-white/80"}`,children:[x.jsx(xe,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"whitespace-nowrap",style:{fontSize:"clamp(0.75rem, 4cqi, 0.875rem)"},children:ne})]},re))}),a==="url"?x.jsxs("section",{className:"space-y-2","data-testid":"import-url-section",children:[x.jsx("input",{type:"text",value:c,onChange:re=>f(re.target.value),placeholder:i("import.url.placeholder"),"data-testid":"repo-url-input",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("p",{className:"text-caption text-white/45 leading-relaxed",children:i("import.url.desc")}),x.jsx("button",{onClick:q,disabled:!c.trim()||E,"data-testid":"import-url-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.url")})]}):a==="markdown"?x.jsxs("section",{className:"space-y-2","data-testid":"import-md-section",children:[x.jsx("input",{type:"text",value:T,onChange:re=>C(re.target.value),placeholder:i("import.placeholder.name"),"data-testid":"md-name-input",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("textarea",{value:y,onChange:re=>v(re.target.value),placeholder:i("import.placeholder.md"),"data-testid":"md-text-input",rows:4,className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors resize-none"}),x.jsx("button",{onClick:R,disabled:!y.trim()||E,"data-testid":"import-md-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.md")})]}):a==="folder"?x.jsxs("section",{className:"space-y-2","data-testid":"import-folder-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.folder.desc")}),!on&&x.jsx("input",{type:"text",value:h,onChange:re=>d(re.target.value),placeholder:i("import.folder.pathPlaceholder"),"data-testid":"import-folder-path",className:"w-full bg-black/25 text-white placeholder:text-white/35 text-body rounded-lg px-3 py-2 border border-white/15 focus:border-brand focus:outline-none transition-colors"}),x.jsx("button",{onClick:D,disabled:E||!on&&!h.trim(),"data-testid":"import-folder-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.folder")})]}):a==="epub"?x.jsxs("section",{className:"space-y-2","data-testid":"import-epub-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.epub.desc")}),!on&&x.jsx("input",{ref:p,type:"file",accept:".epub,application/epub+zip",className:"hidden","data-testid":"import-epub-file",onChange:re=>{var ne;K((ne=re.target.files)==null?void 0:ne[0]),re.currentTarget.value=""}}),x.jsx("button",{onClick:$,disabled:E,"data-testid":"import-epub-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.epub")})]}):a==="audio"?x.jsxs("section",{className:"space-y-2","data-testid":"import-audio-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.audio.desc")}),!on&&x.jsx("input",{ref:g,type:"file",multiple:!0,accept:".wav,.mp3,.m4a,.flac,.aac,.ogg,.opus,audio/*",className:"hidden","data-testid":"import-audio-file",onChange:re=>{J(re.target.files),re.currentTarget.value=""}}),x.jsx("button",{onClick:z,disabled:E,"data-testid":"import-audio-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.audio")})]}):x.jsxs("section",{className:"space-y-2","data-testid":"import-pack-section",children:[x.jsx("p",{className:"text-caption text-white/50 leading-relaxed",children:i("import.pack.desc")}),!on&&x.jsx("input",{ref:m,type:"file",accept:".json,application/json",className:"hidden","data-testid":"import-pack-file",onChange:re=>{var ne;oe((ne=re.target.files)==null?void 0:ne[0]),re.currentTarget.value=""}}),x.jsx("button",{onClick:Z,disabled:E,"data-testid":"import-pack-btn",className:"btn-3d-brand w-full px-3 py-2 text-body disabled:opacity-40",children:i("import.btn.pack")})]})]}),_&&x.jsxs("div",{className:"border border-warning/40 text-warning-light text-label rounded-lg p-2 whitespace-pre-wrap","data-testid":"import-error",children:[_,M&&x.jsx("button",{onClick:()=>void X(M),disabled:E,"data-testid":"import-resume-btn",className:"block mt-1.5 text-label font-bold text-warning-light hover:text-warning underline underline-offset-2 disabled:opacity-40",children:i("import.error.resume")})]}),I&&x.jsxs("div",{className:"border border-brand/30 text-brand text-label rounded-lg p-2","data-testid":"import-success",children:[x.jsx(Tn,{className:"inline-block w-3.5 h-3.5 mr-1 align-[-3px]"}),I,(j==null?void 0:j.packable)&&x.jsx("button",{onClick:()=>void ce(j.courseId),disabled:E,"data-testid":"import-export-pack-btn",className:"block mt-1.5 text-label font-bold hover:underline underline-offset-2 disabled:opacity-40",children:i("import.pack.export")})]})]})]})]})}function bb({scrollRef:e,navRef:t,preset:n}){const r=w.useRef(null);return w.useEffect(()=>{const s=r.current,i=e.current,a=t.current;return!s||!i||!a?void 0:hb(s,i,a,n)},[e,t,n]),x.jsx("canvas",{ref:r,className:"map-sky-canvas","aria-hidden":"true"})}function yb({scrollRef:e,navRef:t,preset:n,getImpacts:r,getFlakes:s,orbSnowRef:i}){const a=w.useRef(null);return w.useEffect(()=>{const o=a.current,u=t.current,l=e.current;if(!o||!u||!l)return;let c=null,f=null;const h=()=>{c=null,f=null},d=new MutationObserver(h);d.observe(l,{childList:!0,subtree:!0}),window.addEventListener("resize",h);const p=mb(o,u,n,()=>{var v,T;c||(c=Array.from(l.querySelectorAll(".lesson-bubble")));const g=f??u.getBoundingClientRect();f=g;const y=[];for(const C of c){const E=C.getBoundingClientRect();if(E.bottom<g.top||E.top>g.bottom)continue;const k=(v=C.closest("[data-node-id]"))==null?void 0:v.getAttribute("data-node-id"),_=k?(T=i==null?void 0:i.current)==null?void 0:T.get(k):void 0;y.push({x:E.left-g.left+E.width/2,y:E.top-g.top+E.height/2,r:E.width/2,..._!==void 0?{snow:_}:{}})}return y},r,s);return()=>{p(),d.disconnect(),window.removeEventListener("resize",h)}},[e,t,n,r,s]),x.jsx("canvas",{ref:a,className:"map-orb-weather-canvas","aria-hidden":"true"})}function Eb({section:e,sectionIndex:t,tree:n,progressMap:r,selectedNodeId:s,dueNodeIds:i,streamingNodeIds:a,onJumpNode:o,physics:u,physicsWeather:l,scrollRef:c,navRef:f,onImpacts:h,onFlakes:d,orbSnowRef:m}){const p=n.filter(z=>z.parentId===e.id).sort((z,J)=>z.orderIdx-J.orderIdx),g=p.filter(z=>z.type==="lesson"),y=g.length>0&&g.every(z=>{var J;return(((J=r[z.id])==null?void 0:J.mastery)??0)>=yx}),v=w.useRef(null),[T,C]=w.useState(268);w.useEffect(()=>{if(!v.current)return;const z=()=>{var ce;const X=((ce=v.current)==null?void 0:ce.clientWidth)??268;C(X>0?X:268)};z();const J=new ResizeObserver(z);return J.observe(v.current),()=>J.disconnect()},[]);const E=_x(p.length,T,e.id),k=E.height,_=110,A=76,I=w.useRef(null),S=w.useRef(new Map),M=w.useRef(0),N=w.useRef(null),j=w.useRef(0),P=p.map(z=>z.id).join(","),L=p.map(z=>{var J;return(z.type==="exam"?!y:(((J=r[z.id])==null?void 0:J.status)??"locked")==="locked")?1:0}).join("");w.useEffect(()=>{var Me,Xe;if(!u||p.length===0||T<=0)return;const z=v.current,J=c.current;if(!z||!J)return;let X;const ce=p[p.length-1];if((ce==null?void 0:ce.type)==="exam"){const G=(Xe=(Me=z.closest("section"))==null?void 0:Me.nextElementSibling)==null?void 0:Xe.querySelector(".map-signpost");G&&(X={x:Ui(`${e.id}:next`,T),y:G.getBoundingClientRect().top-z.getBoundingClientRect().top})}const he=qx({nodes:E.nodes.map((G,se)=>{const pe=p[se];return{id:pe.id,x:G.x,y:G.y,isExam:pe.type==="exam",locked:F(pe),spawn:(()=>{const de=S.current.get(pe.id);return de?$x(de,M.current,T):void 0})()}}),width:T,height:E.height+40,weather:l,anchorKnotX:Ui(`${e.id}:knot`,T),nextKnot:X});I.current=he,Yg(e.id,he,z);const re=z.querySelector("[data-next-knot]");re&&(he.nextKnot?(re.setAttribute("cx",String(he.nextKnot.x)),re.setAttribute("cy",String(he.nextKnot.y))):re.setAttribute("opacity","0"));const ne=z.querySelector("[data-exam-rope]");ne&&!he.nextKnot&&ne.setAttribute("opacity","0");const xe=new Map;for(const G of z.querySelectorAll("[data-node-id]"))G.dataset.nodeId&&xe.set(G.dataset.nodeId,G);const ve=Array.from(z.querySelectorAll("[data-rope]")),Le=Array.from(z.querySelectorAll("[data-pulse]")),Be=Array.from(z.querySelectorAll("[data-field]"));let Ee=!0;const Oe=new IntersectionObserver(G=>{for(const se of G)Ee=se.isIntersecting},{root:J,rootMargin:"200px 0px 200px 0px"});Oe.observe(z);const te=520,Ie=[];let be=0,ze=performance.now();const rt=G=>{var _e;be=requestAnimationFrame(rt);const se=Math.min(50,G-ze);if(ze=G,!Ee)return;he.step(se);for(const Te of he.balls){const Pe=xe.get(Te.nodeId);Pe&&(Pe.style.transform=Fx(Te.body.position.x-Te.layoutX,Te.body.position.y-Te.layoutY,Te.squash,Te.squashAngle)),Te.squash=Ox(Te.squash,se),(_e=m.current)==null||_e.set(Te.nodeId,Te.snow)}const pe=Te=>{if(Te==="__anchor")return he.anchor;if(Te==="__next")return he.nextKnot??he.anchor;const Pe=he.ball(Te);if(Pe)return{x:Pe.body.position.x,y:Pe.body.position.y+Bt*cn};const Ve=p.findIndex(ye=>ye.id===Te),We=Ve>=0?E.nodes[Ve]:void 0;return We?{x:We.x,y:We.y+Bt*cn}:{x:0,y:0}};for(let Te=0;Te<he.links.length&&Te<ve.length;Te++){const Pe=he.links[Te],Ve=[pe(Pe.from)];for(const We of Pe.particles)Ve.push({x:We.position.x,y:We.position.y});Ve.push(pe(Pe.to)),ve[Te].setAttribute("d",Dx(Ve))}for(let Te=0;Te<he.balls.length&&Te<Be.length;Te++){const Pe=he.balls[Te],Ve=Be[Te];Pe.field>.03?(Ve.setAttribute("cx",String(Pe.body.position.x)),Ve.setAttribute("cy",String(Pe.body.position.y)),Ve.setAttribute("r",String(Bt+4+Pe.field*5)),Ve.setAttribute("opacity",String((.3*Pe.field).toFixed(3)))):Ve.setAttribute("opacity","0")}const de=he.drainImpacts();for(const Te of de)Ie.push({x:Te.x,y:Te.y,t0:G,s:Math.min(1,Te.speed/14)});for(let Te=Ie.length-1;Te>=0;Te--)G-Ie[Te].t0>te&&Ie.splice(Te,1);for(let Te=0;Te<Le.length;Te++){const Pe=Ie[Te],Ve=Le[Te];if(!Pe){Ve.setAttribute("opacity","0");continue}const We=(G-Pe.t0)/te;Ve.setAttribute("cx",String(Pe.x)),Ve.setAttribute("cy",String(Pe.y)),Ve.setAttribute("r",String(6+We*(14+Pe.s*14))),Ve.setAttribute("opacity",String(.55*(1-We))),Ve.setAttribute("stroke-width",String(2+Pe.s*1.5))}const Ne=he.drainFlakes();if((de.length>0||Ne.length>0)&&f.current){const Te=z.getBoundingClientRect(),Pe=f.current.getBoundingClientRect(),Ve=We=>({x:We.x+Te.left-Pe.left,y:We.y+Te.top-Pe.top});de.length>0&&h(de.map(We=>({...Ve(We),speed:We.speed}))),Ne.length>0&&d(Ne.map(We=>({...Ve(We),vx:We.vx,vy:We.vy,amount:We.amount})))}};return be=requestAnimationFrame(rt),()=>{cancelAnimationFrame(be),Oe.disconnect();for(const G of he.balls)S.current.set(G.nodeId,{x:G.body.position.x,y:G.body.position.y,vx:G.body.velocity.x,vy:G.body.velocity.y});M.current=T,Gg(e.id),he.dispose(),I.current=null;for(const G of xe.values())G.style.transform=""}},[u,T,P,L,e.id,l]);const F=z=>{var J;return z?z.type==="exam"?!y:(((J=r[z.id])==null?void 0:J.status)??"locked")==="locked":!0},V=(z,J)=>{if(!(!I.current||z.button!==0||F(p.find(he=>he.id===J))||!v.current)){try{z.currentTarget.setPointerCapture(z.pointerId)}catch{}j.current=0,N.current={track:{startX:z.clientX,startY:z.clientY},id:z.pointerId,dragging:!1,nodeId:J}}},B=z=>{const J=N.current,X=I.current;if(!J||!X||z.pointerId!==J.id)return;const ce=v.current;if(!ce||(!J.dragging&&$l(J.track,z.clientX,z.clientY)==="drag"&&(J.dragging=!0,z.currentTarget.style.zIndex="40",X.beginDrag(J.nodeId,z.clientX-ce.getBoundingClientRect().left,z.clientY-ce.getBoundingClientRect().top)),!J.dragging))return;const he=ce.getBoundingClientRect();X.moveDrag(z.clientX-he.left,z.clientY-he.top)},q=z=>{var X;const J=N.current;if(!(!J||z.pointerId!==J.id)){if((X=I.current)==null||X.endDrag(),z.currentTarget.style.zIndex="",$l(J.track,z.clientX,z.clientY)==="drag")j.current=Date.now()+300;else{const ce=p.find(he=>he.id===J.nodeId);ce&&Date.now()>=j.current&&!F(ce)&&(bo(z.clientX,z.clientY,ce.id),o(ce.id))}N.current=null}},R=z=>{const J=p[z],X=J?r[J.id]:void 0,ce=(X==null?void 0:X.status)==="mastered"||(X==null?void 0:X.status)==="in_progress"||(X==null?void 0:X.status)==="available";return{stroke:ce?"var(--brand)":"var(--ink-faint)",strokeWidth:ce?4:2.5,strokeOpacity:ce?.6:.5,strokeDasharray:ce?"none":"3 7"}},$=E.nodes[0]?{x:Ui(`${e.id}:knot`,T),y:ks}:{x:T/2,y:ks},K=p[p.length-1],D=(K==null?void 0:K.type)==="exam",Z=E.nodes[E.nodes.length-1],oe=D&&Z?{x:Ui(`${e.id}:next`,T),y:k+24}:void 0;return x.jsxs("section",{"data-testid":`map-section-${e.id.slice(0,8)}`,className:"py-3 px-2",children:[x.jsxs("div",{className:"map-signpost flex items-center gap-2 mb-3 px-2.5 py-1.5 rounded-lg shadow-sm",children:[x.jsx("span",{className:"w-6 h-6 rounded-full bg-gold text-neutral-900 text-caption font-extrabold flex items-center justify-center shrink-0 ring-2 ring-gold/40 shadow-sm",children:t+1}),x.jsx("span",{className:"text-label font-bold text-white truncate flex-1 drop-shadow-[0_1px_2px_rgba(0,0,0,0.7)]",children:e.title})]}),x.jsxs("div",{ref:v,className:"relative",style:{minHeight:k},children:[x.jsx("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",style:{height:k,overflow:"visible"},children:u?x.jsxs(x.Fragment,{children:[E.nodes[0]&&x.jsx("circle",{cx:$.x,cy:$.y,r:3.5,fill:"#ffc800",opacity:.9}),E.nodes[0]&&x.jsx("path",{"data-rope":0,d:`M ${$.x} ${$.y} L ${E.nodes[0].x} ${E.nodes[0].y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(0)}),E.segments.map((z,J)=>x.jsx("path",{"data-rope":J+1,d:`M ${z.from.x} ${z.from.y+Bt*cn} L ${z.to.x} ${z.to.y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(z.index)},z.index)),oe&&Z&&x.jsxs(x.Fragment,{children:[x.jsx("path",{"data-rope":E.segments.length+1,"data-exam-rope":!0,d:`M ${oe.x} ${oe.y} L ${Z.x} ${Z.y+Bt*cn}`,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",style:R(p.length-1)}),x.jsx("circle",{"data-next-knot":!0,cx:oe.x,cy:oe.y,r:3.5,fill:"#ffc800",opacity:.9})]}),Array.from({length:8},(z,J)=>x.jsx("circle",{"data-pulse":J,cx:0,cy:0,r:0,fill:"none",stroke:"white",opacity:0},J)),p.map((z,J)=>x.jsx("circle",{"data-field":J,cx:0,cy:0,r:0,fill:"none",stroke:"#1cb0f6",strokeWidth:2,opacity:0},`f-${z.id}`))]}):E.segments.map(z=>{const J=Tb(p[z.index],r);return x.jsx("path",{d:Ix(z),stroke:J?"var(--brand)":"var(--ink-faint)",strokeWidth:J?4:2.5,strokeOpacity:J?.6:.5,fill:"none",strokeLinecap:"round",strokeDasharray:J?"none":"3 7",style:J?{pathLength:1,animation:"path-draw 600ms var(--ease-out-expo)"}:void 0},z.index)})}),p.map((z,J)=>{const X=E.nodes[J];if(!X)return null;const ce=ko(z.id),he=`${ce%40/10}s`,re=`${5+ce%30/10}s`;return x.jsx("div",{"data-node-id":z.id,"data-noswipe":"",className:u?`absolute hover:z-30 will-change-transform ${F(z)?"cursor-not-allowed":"cursor-grab active:cursor-grabbing"}`:"absolute balloon-bob hover:z-30",style:{left:X.x-_/2,top:X.y-A/2+10,width:_,...u?{touchAction:"pan-y"}:{"--bob-delay":he,"--bob-duration":re}},onPointerDown:u?ne=>V(ne,z.id):void 0,onPointerMove:u?B:void 0,onPointerUp:u?q:void 0,onPointerCancel:u?q:void 0,children:x.jsx(vb,{lesson:z,progress:r[z.id],isSelected:z.id===s,isDue:i.has(z.id),isStreaming:a.includes(z.id),chapterLessonsMastered:y,onClick:()=>{Date.now()<j.current||(bo(null,null,z.id),o(z.id))}})},z.id)})]})]})}function Tb(e,t){const n=e?t[e.id]:void 0;return(n==null?void 0:n.status)==="mastered"||(n==null?void 0:n.status)==="in_progress"||(n==null?void 0:n.status)==="available"}function vb({lesson:e,progress:t,isSelected:n,isDue:r,isStreaming:s,chapterLessonsMastered:i,onClick:a}){const o=Ge(),u=(t==null?void 0:t.status)??"locked",l=(t==null?void 0:t.crownLevel)??0,c=e.type==="exam",f=Math.min(3,l),h=c?!i:u==="locked",d=c&&h,m=!c&&(u==="in_progress"||u==="mastered"),p=u==="mastered"?100:u==="in_progress"?Math.round(((t==null?void 0:t.mastery)??0)*100):0;return x.jsxs("div",{className:"group relative flex flex-col items-center w-full",children:[x.jsxs("button",{onClick:()=>!h&&a(),disabled:h,"data-testid":`${c?"exam-node":"map-node"}-${e.id.slice(0,8)}`,className:`group relative w-14 h-14 flex items-center justify-center text-2xl rounded-full transition-all duration-200 ${c?d?"lesson-bubble exam-bubble-locked":wb(l>0):kb(u)} ${h?"cursor-not-allowed":"cursor-pointer hover:scale-105"} ${n?"ring-4 ring-accent ring-offset-2 ring-offset-neutral-50 dark:ring-offset-neutral-950":""}`,title:void 0,"data-tooltip":d?`🔒 ${e.title}${o("node.locked.chapterHint")}`:c?`🎯 ${e.title}`:h?`🔒 ${e.title}`:r?`📖 ${e.title}${o("node.due.hint")}`:e.title,children:[s&&x.jsx(ch,{className:"absolute -top-1.5 -right-1.5 z-10 w-4 h-4 text-accent bg-surface-0 rounded-full p-0.5 animate-spin shadow-pop pointer-events-none","aria-label":o("thread.streamingBadge"),"data-testid":`node-streaming-${e.id.slice(0,8)}`}),m&&x.jsxs("svg",{className:"absolute inset-0 w-full h-full -rotate-90 pointer-events-none",viewBox:"0 0 56 56","aria-hidden":"true",children:[x.jsx("circle",{cx:"28",cy:"28",r:"25",fill:"none",stroke:"rgb(255 255 255 / 0.2)",strokeWidth:"2.5"}),x.jsx("circle",{cx:"28",cy:"28",r:"25",fill:"none",stroke:u==="mastered"?"#ffc800":"white",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:`${p/100*157} 157`,className:"transition-all duration-500"})]}),c?d?x.jsx("span",{"aria-label":"exam-locked",className:"relative z-10 opacity-60",children:"🔒"}):x.jsx(mx,{"aria-label":"exam",className:"relative z-10 w-6 h-6 text-white drop-shadow-[0_1px_2px_rgba(0,0,0,0.4)]",strokeWidth:2.5}):h?x.jsx("span",{"aria-label":"locked",className:"relative z-10 opacity-50",children:"🔒"}):u==="mastered"?x.jsx("span",{"aria-label":"mastered",className:"relative z-10 drop-shadow-lg crown-sparkle",children:"👑"}):u==="in_progress"?x.jsx(vn,{"aria-label":"in-progress",className:"relative z-10 w-6 h-6 text-white drop-shadow-[0_1px_2px_rgba(0,0,0,0.4)]",strokeWidth:2.5}):x.jsx("span",{"aria-label":"available",className:"relative z-10 drop-shadow",children:"⭐"}),r&&!h&&!c&&x.jsx("span",{className:"absolute -top-1 -right-1 w-4 h-4 rounded-full bg-review text-white text-caption flex items-center justify-center font-bold border-2 border-neutral-50 dark:border-neutral-950",children:"!"})]}),c&&x.jsx("div",{className:"flex gap-0.5 mt-1","data-testid":`map-stars-${e.id.slice(0,8)}`,children:[0,1,2].map(g=>x.jsx("span",{className:`text-caption ${g<f?"text-gold":"text-white/25"}`,children:"★"},g))}),n&&x.jsx("div",{className:"mt-1 text-caption text-center leading-tight max-w-[120px] font-bold px-1.5 py-0.5 rounded-md bg-brand/90 text-white shadow-sm",children:e.title})]})}function kb(e){switch(e){case"locked":return"lesson-bubble lesson-bubble-locked";case"available":return"lesson-bubble lesson-bubble-available";case"in_progress":return"lesson-bubble lesson-bubble-in-progress";case"mastered":return"lesson-bubble lesson-bubble-mastered";default:return"lesson-bubble lesson-bubble-locked"}}function wb(e){return e?"lesson-bubble exam-bubble-passed":"lesson-bubble exam-bubble"}function Sb({available:e,current:t,onChange:n}){const r=Ge(),[s,i]=w.useState(!1),a={en:"English","zh-CN":"中文","zh-TW":"繁體",ja:"日本語",ko:"한국어",fr:"Français",de:"Deutsch",es:"Español","pt-BR":"Português",ru:"Русский",it:"Italiano",ar:"العربية",hi:"हिन्दी",tr:"Türkçe",pl:"Polski",nl:"Nederlands",id:"Indonesia",vi:"Tiếng Việt",th:"ไทย",sv:"Svenska",fi:"Suomi"},o=t?a[t]??t:r("lang.original");return x.jsxs("div",{className:"relative shrink-0",children:[x.jsxs("button",{onClick:()=>i(!s),className:"flex items-center gap-1 px-1.5 py-0.5 rounded-md text-caption font-bold text-white/80 hover:text-white hover:bg-white/10 transition-colors","data-testid":"lang-switcher-btn",children:[x.jsx(q1,{className:"w-3 h-3"}),o]}),s&&x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>i(!1)}),x.jsxs("div",{className:"absolute top-full right-0 mt-1 z-50 bg-surface-0 rounded-lg shadow-elevated p-1 min-w-[100px] max-h-48 overflow-y-auto",children:[x.jsx("button",{"data-testid":"lang-option-original",onClick:()=>{n(null),i(!1)},className:`w-full text-left px-2 py-1 rounded-md text-caption font-bold transition-colors ${t===null?"bg-brand/15 text-brand":"text-ink-muted hover:bg-neutral-100 dark:hover:bg-neutral-800"}`,children:r("lang.original")}),e.map(u=>x.jsx("button",{"data-testid":`lang-option-${u}`,onClick:()=>{n(u),i(!1)},className:`w-full text-left px-2 py-1 rounded-md text-caption font-bold transition-colors ${t===u?"bg-brand/15 text-brand":"text-ink-muted hover:bg-neutral-100 dark:hover:bg-neutral-800"}`,children:a[u]??u},u))]})]})]})}const Ab=500,Rn=8;function Cb(){const[e,t]=w.useState(null),[n,r]=w.useState({mode:"cursor",x:0,y:0}),[s,i]=w.useState({w:0,h:0}),a=w.useRef(null),o=w.useCallback(()=>window.matchMedia("(pointer: coarse)").matches,[]),u=w.useCallback(g=>{o()||r(y=>y.mode==="cursor"?{...y,x:g.clientX,y:g.clientY}:y)},[o]),l=w.useCallback(g=>{var T;if(o())return;const y=(T=g.target)==null?void 0:T.closest("[data-tooltip]"),v=y==null?void 0:y.getAttribute("data-tooltip");if(v){t(v),r({mode:"cursor",x:g.clientX,y:g.clientY});return}t(null)},[o]),c=w.useCallback(g=>{var v,T;if(o())return;((T=(v=g.target)==null?void 0:v.closest)==null?void 0:T.call(v,"[data-tooltip]"))&&t(null)},[o]);if(w.useEffect(()=>(document.addEventListener("mousemove",u,{passive:!0}),document.addEventListener("mouseover",l,{passive:!0}),document.addEventListener("mouseout",c,{passive:!0}),()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseover",l),document.removeEventListener("mouseout",c)}),[u,l,c]),w.useEffect(()=>{let g=null;const y=()=>{g&&(clearTimeout(g),g=null)},v=k=>{var S;if(!o()||k.touches.length!==1)return y();const _=(S=k.target)==null?void 0:S.closest("[data-tooltip]"),A=_==null?void 0:_.getAttribute("data-tooltip");if(!A||!_)return y();const I=_;y(),g=setTimeout(()=>{I.isConnected&&(t(A),r({mode:"rect",x:0,y:0,rect:I.getBoundingClientRect()}))},Ab)},T=()=>{y(),t(k=>k&&null)},C=()=>y(),E=()=>{y(),t(null)};return document.addEventListener("touchstart",v,{passive:!0}),document.addEventListener("touchend",T,{passive:!0}),document.addEventListener("touchmove",C,{passive:!0}),document.addEventListener("touchcancel",E,{passive:!0}),()=>{y(),document.removeEventListener("touchstart",v),document.removeEventListener("touchend",T),document.removeEventListener("touchmove",C),document.removeEventListener("touchcancel",E)}},[o]),w.useLayoutEffect(()=>{a.current&&e&&i({w:a.current.offsetWidth,h:a.current.offsetHeight})},[e]),!e)return null;const f=window.innerWidth,h=window.innerHeight;let d,m,p;if(n.mode==="rect"&&n.rect){const g=n.rect;d=g.left+g.width/2-s.w/2,m=g.top-s.h-6,p="none",m<Rn&&(m=g.bottom+6)}else d=n.x,m=n.y-6,p="translate(0, -100%)";return d=Math.min(Math.max(d,Rn),Math.max(Rn,f-s.w-Rn)),m=Math.min(Math.max(m,Rn),Math.max(Rn,h-s.h-Rn)),yh.createPortal(x.jsx("div",{ref:a,style:{position:"fixed",left:d,top:m,transform:p,zIndex:99999,pointerEvents:"none",visibility:s.w?"visible":"hidden",background:"rgb(var(--surface-0-rgb) / 0.92)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)",color:"var(--ink)",border:"1px solid rgb(var(--border-rgb) / 0.5)",fontSize:"0.875rem",fontWeight:600,lineHeight:1.4,padding:"4px 10px",borderRadius:"8px",maxWidth:"260px",wordBreak:"break-word",boxShadow:"0 4px 12px rgb(var(--shadow-rgb) / 0.15)",whiteSpace:"normal"},children:e}),document.body)}function JR(){}function Zl(e){const t=[],n=String(e||"");let r=n.indexOf(","),s=0,i=!1;for(;!i;){r===-1&&(r=n.length,i=!0);const a=n.slice(s,r).trim();(a||!i)&&t.push(a),s=r+1,r=n.indexOf(",",s)}return t}function Lh(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const _b=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Ib=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Nb={};function Jl(e,t){return(Nb.jsx?Ib:_b).test(e)}const Rb=/[ \t\n\f\r]/g;function Lb(e){return typeof e=="object"?e.type==="text"?ec(e.value):!1:ec(e)}function ec(e){return e.replace(Rb,"")===""}class wi{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}wi.prototype.normal={};wi.prototype.property={};wi.prototype.space=void 0;function Mh(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new wi(n,r,t)}function pi(e){return e.toLowerCase()}class Nt{constructor(t,n){this.attribute=n,this.property=t}}Nt.prototype.attribute="";Nt.prototype.booleanish=!1;Nt.prototype.boolean=!1;Nt.prototype.commaOrSpaceSeparated=!1;Nt.prototype.commaSeparated=!1;Nt.prototype.defined=!1;Nt.prototype.mustUseProperty=!1;Nt.prototype.number=!1;Nt.prototype.overloadedBoolean=!1;Nt.prototype.property="";Nt.prototype.spaceSeparated=!1;Nt.prototype.space=void 0;let Mb=0;const Re=Qn(),ht=Qn(),wo=Qn(),ue=Qn(),Je=Qn(),qn=Qn(),Mt=Qn();function Qn(){return 2**++Mb}const So=Object.freeze(Object.defineProperty({__proto__:null,boolean:Re,booleanish:ht,commaOrSpaceSeparated:Mt,commaSeparated:qn,number:ue,overloadedBoolean:wo,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),Ca=Object.keys(So);class Au extends Nt{constructor(t,n,r,s){let i=-1;if(super(t,n),tc(this,"space",s),typeof r=="number")for(;++i<Ca.length;){const a=Ca[i];tc(this,Ca[i],(r&So[a])===So[a])}}}Au.prototype.defined=!0;function tc(e,t,n){n&&(e[t]=n)}function Sr(e){const t={},n={};for(const[r,s]of Object.entries(e.properties)){const i=new Au(r,e.transform(e.attributes||{},r),s,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[pi(r)]=r,n[pi(i.attribute)]=r}return new wi(t,n,e.space)}const Ph=Sr({properties:{ariaActiveDescendant:null,ariaAtomic:ht,ariaAutoComplete:null,ariaBusy:ht,ariaChecked:ht,ariaColCount:ue,ariaColIndex:ue,ariaColSpan:ue,ariaControls:Je,ariaCurrent:null,ariaDescribedBy:Je,ariaDetails:null,ariaDisabled:ht,ariaDropEffect:Je,ariaErrorMessage:null,ariaExpanded:ht,ariaFlowTo:Je,ariaGrabbed:ht,ariaHasPopup:null,ariaHidden:ht,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Je,ariaLevel:ue,ariaLive:null,ariaModal:ht,ariaMultiLine:ht,ariaMultiSelectable:ht,ariaOrientation:null,ariaOwns:Je,ariaPlaceholder:null,ariaPosInSet:ue,ariaPressed:ht,ariaReadOnly:ht,ariaRelevant:null,ariaRequired:ht,ariaRoleDescription:Je,ariaRowCount:ue,ariaRowIndex:ue,ariaRowSpan:ue,ariaSelected:ht,ariaSetSize:ue,ariaSort:null,ariaValueMax:ue,ariaValueMin:ue,ariaValueNow:ue,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Dh(e,t){return t in e?e[t]:t}function Oh(e,t){return Dh(e,t.toLowerCase())}const Pb=Sr({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:qn,acceptCharset:Je,accessKey:Je,action:null,allow:null,allowFullScreen:Re,allowPaymentRequest:Re,allowUserMedia:Re,alpha:Re,alt:null,as:null,async:Re,autoCapitalize:null,autoComplete:Je,autoFocus:Re,autoPlay:Re,blocking:Je,capture:null,charSet:null,checked:Re,cite:null,className:Je,closedBy:null,colorSpace:null,cols:ue,colSpan:ue,command:null,commandFor:null,content:null,contentEditable:ht,controls:Re,controlsList:Je,coords:ue|qn,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Re,defer:Re,dir:null,dirName:null,disabled:Re,download:wo,draggable:ht,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Re,formTarget:null,headers:Je,height:ue,hidden:wo,high:ue,href:null,hrefLang:null,htmlFor:Je,httpEquiv:Je,id:null,imageSizes:null,imageSrcSet:null,inert:Re,inputMode:null,integrity:null,is:null,isMap:Re,itemId:null,itemProp:Je,itemRef:Je,itemScope:Re,itemType:Je,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Re,low:ue,manifest:null,max:null,maxLength:ue,media:null,method:null,min:null,minLength:ue,multiple:Re,muted:Re,name:null,nonce:null,noModule:Re,noValidate:Re,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Re,optimum:ue,pattern:null,ping:Je,placeholder:null,playsInline:Re,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Re,referrerPolicy:null,rel:Je,required:Re,reversed:Re,rows:ue,rowSpan:ue,sandbox:Je,scope:null,scoped:Re,seamless:Re,selected:Re,shadowRootClonable:Re,shadowRootCustomElementRegistry:Re,shadowRootDelegatesFocus:Re,shadowRootMode:null,shadowRootSerializable:Re,shape:null,size:ue,sizes:null,slot:null,span:ue,spellCheck:ht,src:null,srcDoc:null,srcLang:null,srcSet:null,start:ue,step:null,style:null,tabIndex:ue,target:null,title:null,translate:null,type:null,typeMustMatch:Re,useMap:null,value:ht,width:ue,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Je,axis:null,background:null,bgColor:null,border:ue,borderColor:null,bottomMargin:ue,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Re,declare:Re,event:null,face:null,frame:null,frameBorder:null,hSpace:ue,leftMargin:ue,link:null,longDesc:null,lowSrc:null,marginHeight:ue,marginWidth:ue,noResize:Re,noHref:Re,noShade:Re,noWrap:Re,object:null,profile:null,prompt:null,rev:null,rightMargin:ue,rules:null,scheme:null,scrolling:ht,standby:null,summary:null,text:null,topMargin:ue,valueType:null,version:null,vAlign:null,vLink:null,vSpace:ue,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Re,disablePictureInPicture:Re,disableRemotePlayback:Re,exportParts:qn,part:Je,prefix:null,property:null,results:ue,security:null,unselectable:null},space:"html",transform:Oh}),Db=Sr({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Mt,accentHeight:ue,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:ue,amplitude:ue,arabicForm:null,ascent:ue,attributeName:null,attributeType:null,azimuth:ue,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:ue,by:null,calcMode:null,capHeight:ue,className:Je,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:ue,diffuseConstant:ue,direction:null,display:null,dur:null,divisor:ue,dominantBaseline:null,download:Re,dx:null,dy:null,edgeMode:null,editable:null,elevation:ue,enableBackground:null,end:null,event:null,exponent:ue,externalResourcesRequired:null,fill:null,fillOpacity:ue,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:qn,g2:qn,glyphName:qn,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:ue,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:ue,horizOriginX:ue,horizOriginY:ue,id:null,ideographic:ue,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:ue,k:ue,k1:ue,k2:ue,k3:ue,k4:ue,kernelMatrix:Mt,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:ue,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:ue,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:ue,overlineThickness:ue,paintOrder:null,panose1:null,path:null,pathLength:ue,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Je,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:ue,pointsAtY:ue,pointsAtZ:ue,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Mt,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Mt,rev:Mt,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Mt,requiredFeatures:Mt,requiredFonts:Mt,requiredFormats:Mt,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:ue,specularExponent:ue,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:ue,strikethroughThickness:ue,string:null,stroke:null,strokeDashArray:Mt,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:ue,strokeOpacity:ue,strokeWidth:null,style:null,surfaceScale:ue,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Mt,tabIndex:ue,tableValues:null,target:null,targetX:ue,targetY:ue,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Mt,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:ue,underlineThickness:ue,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:ue,values:null,vAlphabetic:ue,vMathematical:ue,vectorEffect:null,vHanging:ue,vIdeographic:ue,version:null,vertAdvY:ue,vertOriginX:ue,vertOriginY:ue,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:ue,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Dh}),Fh=Sr({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Bh=Sr({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Oh}),jh=Sr({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Ob={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},Fb=/[A-Z]/g,nc=/-[a-z]/g,Bb=/^data[-\w.:]+$/i;function Ws(e,t){const n=pi(t);let r=t,s=Nt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Bb.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(nc,Hb);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!nc.test(i)){let a=i.replace(Fb,jb);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}s=Au}return new s(r,t)}function jb(e){return"-"+e.toLowerCase()}function Hb(e){return e.charAt(1).toUpperCase()}const Si=Mh([Ph,Pb,Fh,Bh,jh],"html"),Sn=Mh([Ph,Db,Fh,Bh,jh],"svg");function rc(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Hh(e){return e.join(" ").trim()}var ur={},_a,ic;function Ub(){if(ic)return _a;ic=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,o=/^\s+|\s+$/g,u=`
413
413
  `,l="/",c="*",f="",h="comment",d="declaration";function m(g,y){if(typeof g!="string")throw new TypeError("First argument must be a string");if(!g)return[];y=y||{};var v=1,T=1;function C(P){var L=P.match(t);L&&(v+=L.length);var F=P.lastIndexOf(u);T=~F?P.length-F:T+P.length}function E(){var P={line:v,column:T};return function(L){return L.position=new k(P),I(),L}}function k(P){this.start=P,this.end={line:v,column:T},this.source=y.source}k.prototype.content=g;function _(P){var L=new Error(y.source+":"+v+":"+T+": "+P);if(L.reason=P,L.filename=y.source,L.line=v,L.column=T,L.source=g,!y.silent)throw L}function A(P){var L=P.exec(g);if(L){var F=L[0];return C(F),g=g.slice(F.length),L}}function I(){A(n)}function S(P){var L;for(P=P||[];L=M();)L!==!1&&P.push(L);return P}function M(){var P=E();if(!(l!=g.charAt(0)||c!=g.charAt(1))){for(var L=2;f!=g.charAt(L)&&(c!=g.charAt(L)||l!=g.charAt(L+1));)++L;if(L+=2,f===g.charAt(L-1))return _("End of comment missing");var F=g.slice(2,L-2);return T+=2,C(F),g=g.slice(L),T+=2,P({type:h,comment:F})}}function N(){var P=E(),L=A(r);if(L){if(M(),!A(s))return _("property missing ':'");var F=A(i),V=P({type:d,property:p(L[0].replace(e,f)),value:F?p(F[0].replace(e,f)):f});return A(a),V}}function j(){var P=[];S(P);for(var L;L=N();)L!==!1&&(P.push(L),S(P));return P}return I(),j()}function p(g){return g?g.replace(o,f):f}return _a=m,_a}var sc;function zb(){if(sc)return ur;sc=1;var e=ur&&ur.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ur,"__esModule",{value:!0}),ur.default=n;const t=e(Ub());function n(r,s){let i=null;if(!r||typeof r!="string")return i;const a=(0,t.default)(r),o=typeof s=="function";return a.forEach(u=>{if(u.type!=="declaration")return;const{property:l,value:c}=u;o?s(l,c,u):c&&(i=i||{},i[l]=c)}),i}return ur}var jr={},ac;function Vb(){if(ac)return jr;ac=1,Object.defineProperty(jr,"__esModule",{value:!0}),jr.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,i=function(l){return!l||n.test(l)||e.test(l)},a=function(l,c){return c.toUpperCase()},o=function(l,c){return"".concat(c,"-")},u=function(l,c){return c===void 0&&(c={}),i(l)?l:(l=l.toLowerCase(),c.reactCompat?l=l.replace(s,o):l=l.replace(r,o),l.replace(t,a))};return jr.camelCase=u,jr}var Hr,oc;function qb(){if(oc)return Hr;oc=1;var e=Hr&&Hr.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(zb()),n=Vb();function r(s,i){var a={};return!s||typeof s!="string"||(0,t.default)(s,function(o,u){o&&u&&(a[(0,n.camelCase)(o,i)]=u)}),a}return r.default=r,Hr=r,Hr}var $b=qb();const Wb=xu($b),Ys=Uh("end"),sn=Uh("start");function Uh(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function zh(e){const t=sn(e),n=Ys(e);if(t&&n)return{start:t,end:n}}function Jr(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?uc(e.position):"start"in e||"end"in e?uc(e):"line"in e||"column"in e?Ao(e):""}function Ao(e){return lc(e&&e.line)+":"+lc(e&&e.column)}function uc(e){return Ao(e&&e.start)+"-"+Ao(e&&e.end)}function lc(e){return e&&typeof e=="number"?e:1}class vt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?s=t:!i.cause&&t&&(a=!0,s=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?i.ruleId=r:(i.source=r.slice(0,u),i.ruleId=r.slice(u+1))}if(!i.place&&i.ancestors&&i.ancestors){const u=i.ancestors[i.ancestors.length-1];u&&(i.place=u.position)}const o=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=o?o.line:void 0,this.name=Jr(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}vt.prototype.file="";vt.prototype.name="";vt.prototype.reason="";vt.prototype.message="";vt.prototype.stack="";vt.prototype.column=void 0;vt.prototype.line=void 0;vt.prototype.ancestors=void 0;vt.prototype.cause=void 0;vt.prototype.fatal=void 0;vt.prototype.place=void 0;vt.prototype.ruleId=void 0;vt.prototype.source=void 0;const Cu={}.hasOwnProperty,Yb=new Map,Gb=/[A-Z]/g,Kb=new Set(["table","tbody","thead","tfoot","tr"]),Xb=new Set(["td","th"]),Vh="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Qb(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=sy(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=iy(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Sn:Si,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=qh(s,e,void 0);return i&&typeof i!="string"?i:s.create(e,s.Fragment,{children:i||void 0},void 0)}function qh(e,t,n){if(t.type==="element")return Zb(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Jb(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return ty(e,t,n);if(t.type==="mdxjsEsm")return ey(e,t);if(t.type==="root")return ny(e,t,n);if(t.type==="text")return ry(e,t)}function Zb(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Sn,e.schema=s),e.ancestors.push(t);const i=Wh(e,t.tagName,!1),a=ay(e,t);let o=Iu(e,t);return Kb.has(t.tagName)&&(o=o.filter(function(u){return typeof u=="string"?!Lb(u):!0})),$h(e,a,i,t),_u(a,o),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function Jb(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}gi(e,t.position)}function ey(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);gi(e,t.position)}function ty(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Sn,e.schema=s),e.ancestors.push(t);const i=t.name===null?e.Fragment:Wh(e,t.name,!0),a=oy(e,t),o=Iu(e,t);return $h(e,a,i,t),_u(a,o),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function ny(e,t,n){const r={};return _u(r,Iu(e,t)),e.create(t,e.Fragment,r,n)}function ry(e,t){return t.value}function $h(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function _u(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function iy(e,t,n){return r;function r(s,i,a,o){const l=Array.isArray(a.children)?n:t;return o?l(i,a,o):l(i,a)}}function sy(e,t){return n;function n(r,s,i,a){const o=Array.isArray(i.children),u=sn(r);return t(s,i,a,o,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function ay(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Cu.call(t.properties,s)){const i=uy(e,s,t.properties[s]);if(i){const[a,o]=i;e.tableCellAlignToStyle&&a==="align"&&typeof o=="string"&&Xb.has(t.tagName)?r=o:n[a]=o}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function oy(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const o=a.properties[0];o.type,Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else gi(e,t.position);else{const s=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const o=r.value.data.estree.body[0];o.type,i=e.evaluater.evaluateExpression(o.expression)}else gi(e,t.position);else i=r.value===null?!0:r.value;n[s]=i}return n}function Iu(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:Yb;for(;++r<t.children.length;){const i=t.children[r];let a;if(e.passKeys){const u=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(u){const l=s.get(u)||0;a=u+"-"+l,s.set(u,l+1)}}const o=qh(e,i,a);o!==void 0&&n.push(o)}return n}function uy(e,t,n){const r=Ws(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?Lh(n):Hh(n)),r.property==="style"){let s=typeof n=="object"?n:ly(e,String(n));return e.stylePropertyNameCase==="css"&&(s=cy(s)),["style",s]}return[e.elementAttributeNameCase==="react"&&r.space?Ob[r.property]||r.property:r.attribute,n]}}function ly(e,t){try{return Wb(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,s=new vt("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw s.file=e.filePath||void 0,s.url=Vh+"#cannot-parse-style-attribute",s}}function Wh(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const s=t.split(".");let i=-1,a;for(;++i<s.length;){const o=Jl(s[i])?{type:"Identifier",name:s[i]}:{type:"Literal",value:s[i]};a=a?{type:"MemberExpression",object:a,property:o,computed:!!(i&&o.type==="Literal"),optional:!1}:o}r=a}else r=Jl(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const s=r.value;return Cu.call(e.components,s)?e.components[s]:s}if(e.evaluater)return e.evaluater.evaluateExpression(r);gi(e)}function gi(e,t){const n=new vt("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Vh+"#cannot-handle-mdx-estrees-without-createevaluater",n}function cy(e){const t={};let n;for(n in e)Cu.call(e,n)&&(t[dy(n)]=e[n]);return t}function dy(e){let t=e.replace(Gb,fy);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function fy(e){return"-"+e.toLowerCase()}const Ia={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},hy={};function Nu(e,t){const n=hy,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,s=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Yh(e,r,s)}function Yh(e,t,n){if(my(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return cc(e.children,t,n)}return Array.isArray(e)?cc(e,t,n):""}function cc(e,t,n){const r=[];let s=-1;for(;++s<e.length;)r[s]=Yh(e[s],t,n);return r.join("")}function my(e){return!!(e&&typeof e=="object")}const dc=document.createElement("i");function Ru(e){const t="&"+e+";";dc.innerHTML=t;const n=dc.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Pt(e,t,n,r){const s=e.length;let i=0,a;if(t<0?t=-t>s?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i<r.length;)a=r.slice(i,i+1e4),a.unshift(t,0),e.splice(...a),i+=1e4,t+=1e4}function jt(e,t){return e.length>0?(Pt(e,e.length,0,t),e):t}const fc={}.hasOwnProperty;function Gh(e){const t={};let n=-1;for(;++n<e.length;)py(t,e[n]);return t}function py(e,t){let n;for(n in t){const s=(fc.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n];let a;if(i)for(a in i){fc.call(s,a)||(s[a]=[]);const o=i[a];gy(s[a],Array.isArray(o)?o:o?[o]:[])}}}function gy(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Pt(e,0,0,r)}function Kh(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Yt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const wt=An(/[A-Za-z]/),Tt=An(/[\dA-Za-z]/),xy=An(/[#-'*+\--9=?A-Z^-~]/);function ws(e){return e!==null&&(e<32||e===127)}const Co=An(/\d/),by=An(/[\dA-Fa-f]/),yy=An(/[!-/:-@[-`{-~]/);function Ae(e){return e!==null&&e<-2}function nt(e){return e!==null&&(e<0||e===32)}function Ue(e){return e===-2||e===-1||e===32}const Gs=An(new RegExp("\\p{P}|\\p{S}","u")),Kn=An(/\s/);function An(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Ar(e){const t=[];let n=-1,r=0,s=0;for(;++n<e.length;){const i=e.charCodeAt(n);let a="";if(i===37&&Tt(e.charCodeAt(n+1))&&Tt(e.charCodeAt(n+2)))s=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(a=String.fromCharCode(i));else if(i>55295&&i<57344){const o=e.charCodeAt(n+1);i<56320&&o>56319&&o<57344?(a=String.fromCharCode(i,o),s=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+s+1,a=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function qe(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(u){return Ue(u)?(e.enter(n),o(u)):t(u)}function o(u){return Ue(u)&&i++<s?(e.consume(u),o):(e.exit(n),t(u))}}const Ey={tokenize:Ty};function Ty(e){const t=e.attempt(this.parser.constructs.contentInitial,r,s);let n;return t;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),qe(e,t,"linePrefix")}function s(o){return e.enter("paragraph"),i(o)}function i(o){const u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,a(o)}function a(o){if(o===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(o);return}return Ae(o)?(e.consume(o),e.exit("chunkText"),i):(e.consume(o),a)}}const vy={tokenize:ky},hc={tokenize:wy};function ky(e){const t=this,n=[];let r=0,s,i,a;return o;function o(T){if(r<n.length){const C=n[r];return t.containerState=C[1],e.attempt(C[0].continuation,u,l)(T)}return l(T)}function u(T){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,s&&v();const C=t.events.length;let E=C,k;for(;E--;)if(t.events[E][0]==="exit"&&t.events[E][1].type==="chunkFlow"){k=t.events[E][1].end;break}y(r);let _=C;for(;_<t.events.length;)t.events[_][1].end={...k},_++;return Pt(t.events,E+1,0,t.events.slice(C)),t.events.length=_,l(T)}return o(T)}function l(T){if(r===n.length){if(!s)return h(T);if(s.currentConstruct&&s.currentConstruct.concrete)return m(T);t.interrupt=!!(s.currentConstruct&&!s._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(hc,c,f)(T)}function c(T){return s&&v(),y(r),h(T)}function f(T){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,m(T)}function h(T){return t.containerState={},e.attempt(hc,d,m)(T)}function d(T){return r++,n.push([t.currentConstruct,t.containerState]),h(T)}function m(T){if(T===null){s&&v(),y(0),e.consume(T);return}return s=s||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:s,contentType:"flow",previous:i}),p(T)}function p(T){if(T===null){g(e.exit("chunkFlow"),!0),y(0),e.consume(T);return}return Ae(T)?(e.consume(T),g(e.exit("chunkFlow")),r=0,t.interrupt=void 0,o):(e.consume(T),p)}function g(T,C){const E=t.sliceStream(T);if(C&&E.push(null),T.previous=i,i&&(i.next=T),i=T,s.defineSkip(T.start),s.write(E),t.parser.lazy[T.start.line]){let k=s.events.length;for(;k--;)if(s.events[k][1].start.offset<a&&(!s.events[k][1].end||s.events[k][1].end.offset>a))return;const _=t.events.length;let A=_,I,S;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){if(I){S=t.events[A][1].end;break}I=!0}for(y(r),k=_;k<t.events.length;)t.events[k][1].end={...S},k++;Pt(t.events,A+1,0,t.events.slice(_)),t.events.length=k}}function y(T){let C=n.length;for(;C-- >T;){const E=n[C];t.containerState=E[1],E[0].exit.call(t,e)}n.length=T}function v(){s.write([null]),i=void 0,s=void 0,t.containerState._closeFlow=void 0}}function wy(e,t,n){return qe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Tr(e){if(e===null||nt(e)||Kn(e))return 1;if(Gs(e))return 2}function Ks(e,t,n){const r=[];let s=-1;for(;++s<e.length;){const i=e[s].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}const _o={name:"attention",resolveAll:Sy,tokenize:Ay};function Sy(e,t){let n=-1,r,s,i,a,o,u,l,c;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;u=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f={...e[r][1].end},h={...e[n][1].start};mc(f,-u),mc(h,u),a={type:u>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},o={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},i={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:u>1?"strong":"emphasis",start:{...a.start},end:{...o.end}},e[r][1].end={...a.start},e[n][1].start={...o.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=jt(l,[["enter",e[r][1],t],["exit",e[r][1],t]])),l=jt(l,[["enter",s,t],["enter",a,t],["exit",a,t],["enter",i,t]]),l=jt(l,Ks(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=jt(l,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,l=jt(l,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,Pt(e,r-1,n-r+3,l),n=r+l.length-c-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function Ay(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,s=Tr(r);let i;return a;function a(u){return i=u,e.enter("attentionSequence"),o(u)}function o(u){if(u===i)return e.consume(u),o;const l=e.exit("attentionSequence"),c=Tr(u),f=!c||c===2&&s||n.includes(u),h=!s||s===2&&c||n.includes(r);return l._open=!!(i===42?f:f&&(s||!h)),l._close=!!(i===42?h:h&&(c||!f)),t(u)}}function mc(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const Cy={name:"autolink",tokenize:_y};function _y(e,t,n){let r=0;return s;function s(d){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(d){return wt(d)?(e.consume(d),a):d===64?n(d):l(d)}function a(d){return d===43||d===45||d===46||Tt(d)?(r=1,o(d)):l(d)}function o(d){return d===58?(e.consume(d),r=0,u):(d===43||d===45||d===46||Tt(d))&&r++<32?(e.consume(d),o):(r=0,l(d))}function u(d){return d===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):d===null||d===32||d===60||ws(d)?n(d):(e.consume(d),u)}function l(d){return d===64?(e.consume(d),c):xy(d)?(e.consume(d),l):n(d)}function c(d){return Tt(d)?f(d):n(d)}function f(d){return d===46?(e.consume(d),r=0,c):d===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(d),e.exit("autolinkMarker"),e.exit("autolink"),t):h(d)}function h(d){if((d===45||Tt(d))&&r++<63){const m=d===45?h:f;return e.consume(d),m}return n(d)}}const Ai={partial:!0,tokenize:Iy};function Iy(e,t,n){return r;function r(i){return Ue(i)?qe(e,s,"linePrefix")(i):s(i)}function s(i){return i===null||Ae(i)?t(i):n(i)}}const Xh={continuation:{tokenize:Ry},exit:Ly,name:"blockQuote",tokenize:Ny};function Ny(e,t,n){const r=this;return s;function s(a){if(a===62){const o=r.containerState;return o.open||(e.enter("blockQuote",{_container:!0}),o.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),i}return n(a)}function i(a){return Ue(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function Ry(e,t,n){const r=this;return s;function s(a){return Ue(a)?qe(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):i(a)}function i(a){return e.attempt(Xh,t,n)(a)}}function Ly(e){e.exit("blockQuote")}const Qh={name:"characterEscape",tokenize:My};function My(e,t,n){return r;function r(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),s}function s(i){return yy(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}const Zh={name:"characterReference",tokenize:Py};function Py(e,t,n){const r=this;let s=0,i,a;return o;function o(f){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),u}function u(f){return f===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(f),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),i=31,a=Tt,c(f))}function l(f){return f===88||f===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(f),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,a=by,c):(e.enter("characterReferenceValue"),i=7,a=Co,c(f))}function c(f){if(f===59&&s){const h=e.exit("characterReferenceValue");return a===Tt&&!Ru(r.sliceSerialize(h))?n(f):(e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(f)&&s++<i?(e.consume(f),c):n(f)}}const pc={partial:!0,tokenize:Oy},gc={concrete:!0,name:"codeFenced",tokenize:Dy};function Dy(e,t,n){const r=this,s={partial:!0,tokenize:E};let i=0,a=0,o;return u;function u(k){return l(k)}function l(k){const _=r.events[r.events.length-1];return i=_&&_[1].type==="linePrefix"?_[2].sliceSerialize(_[1],!0).length:0,o=k,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),c(k)}function c(k){return k===o?(a++,e.consume(k),c):a<3?n(k):(e.exit("codeFencedFenceSequence"),Ue(k)?qe(e,f,"whitespace")(k):f(k))}function f(k){return k===null||Ae(k)?(e.exit("codeFencedFence"),r.interrupt?t(k):e.check(pc,p,C)(k)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(k))}function h(k){return k===null||Ae(k)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),f(k)):Ue(k)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),qe(e,d,"whitespace")(k)):k===96&&k===o?n(k):(e.consume(k),h)}function d(k){return k===null||Ae(k)?f(k):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),m(k))}function m(k){return k===null||Ae(k)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),f(k)):k===96&&k===o?n(k):(e.consume(k),m)}function p(k){return e.attempt(s,C,g)(k)}function g(k){return e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),y}function y(k){return i>0&&Ue(k)?qe(e,v,"linePrefix",i+1)(k):v(k)}function v(k){return k===null||Ae(k)?e.check(pc,p,C)(k):(e.enter("codeFlowValue"),T(k))}function T(k){return k===null||Ae(k)?(e.exit("codeFlowValue"),v(k)):(e.consume(k),T)}function C(k){return e.exit("codeFenced"),t(k)}function E(k,_,A){let I=0;return S;function S(L){return k.enter("lineEnding"),k.consume(L),k.exit("lineEnding"),M}function M(L){return k.enter("codeFencedFence"),Ue(L)?qe(k,N,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(L):N(L)}function N(L){return L===o?(k.enter("codeFencedFenceSequence"),j(L)):A(L)}function j(L){return L===o?(I++,k.consume(L),j):I>=a?(k.exit("codeFencedFenceSequence"),Ue(L)?qe(k,P,"whitespace")(L):P(L)):A(L)}function P(L){return L===null||Ae(L)?(k.exit("codeFencedFence"),_(L)):A(L)}}}function Oy(e,t,n){const r=this;return s;function s(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Na={name:"codeIndented",tokenize:By},Fy={partial:!0,tokenize:jy};function By(e,t,n){const r=this;return s;function s(l){return e.enter("codeIndented"),qe(e,i,"linePrefix",5)(l)}function i(l){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?a(l):n(l)}function a(l){return l===null?u(l):Ae(l)?e.attempt(Fy,a,u)(l):(e.enter("codeFlowValue"),o(l))}function o(l){return l===null||Ae(l)?(e.exit("codeFlowValue"),a(l)):(e.consume(l),o)}function u(l){return e.exit("codeIndented"),t(l)}}function jy(e,t,n){const r=this;return s;function s(a){return r.parser.lazy[r.now().line]?n(a):Ae(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),s):qe(e,i,"linePrefix",5)(a)}function i(a){const o=r.events[r.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(a):Ae(a)?s(a):n(a)}}const Hy={name:"codeText",previous:zy,resolve:Uy,tokenize:Vy};function Uy(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)s===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(s=r):(r===t||e[r][1].type==="lineEnding")&&(e[s][1].type="codeTextData",r!==s+2&&(e[s][1].end=e[r-1][1].end,e.splice(s+2,r-s-2),t-=r-s-2,r=s+2),s=void 0);return e}function zy(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Vy(e,t,n){let r=0,s,i;return a;function a(f){return e.enter("codeText"),e.enter("codeTextSequence"),o(f)}function o(f){return f===96?(e.consume(f),r++,o):(e.exit("codeTextSequence"),u(f))}function u(f){return f===null?n(f):f===32?(e.enter("space"),e.consume(f),e.exit("space"),u):f===96?(i=e.enter("codeTextSequence"),s=0,c(f)):Ae(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),u):(e.enter("codeTextData"),l(f))}function l(f){return f===null||f===32||f===96||Ae(f)?(e.exit("codeTextData"),u(f)):(e.consume(f),l)}function c(f){return f===96?(e.consume(f),s++,c):s===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(f)):(i.type="codeTextData",l(f))}}class qy{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&Ur(this.left,r),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ur(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ur(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);Ur(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Ur(this.left,n.reverse())}}}function Ur(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Jh(e){const t={};let n=-1,r,s,i,a,o,u,l;const c=new qy(e);for(;++n<c.length;){for(;n in t;)n=t[n];if(r=c.get(n),n&&r[1].type==="chunkFlow"&&c.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,i=0,i<u.length&&u[i][1].type==="lineEndingBlank"&&(i+=2),i<u.length&&u[i][1].type==="content"))for(;++i<u.length&&u[i][1].type!=="content";)u[i][1].type==="chunkText"&&(u[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,$y(c,n)),n=t[n],l=!0);else if(r[1]._container){for(i=n,s=void 0;i--;)if(a=c.get(i),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank")a[0]==="enter"&&(s&&(c.get(s)[1].type="lineEndingBlank"),a[1].type="lineEnding",s=i);else if(!(a[1].type==="linePrefix"||a[1].type==="listItemIndent"))break;s&&(r[1].end={...c.get(s)[1].start},o=c.slice(s,n),o.unshift(r),c.splice(s,n-s+1,o))}}return Pt(e,0,Number.POSITIVE_INFINITY,c.slice(0)),!l}function $y(e,t){const n=e.get(t)[1],r=e.get(t)[2];let s=t-1;const i=[];let a=n._tokenizer;a||(a=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(a._contentTypeTextTrailing=!0));const o=a.events,u=[],l={};let c,f,h=-1,d=n,m=0,p=0;const g=[p];for(;d;){for(;e.get(++s)[1]!==d;);i.push(s),d._tokenizer||(c=r.sliceStream(d),d.next||c.push(null),f&&a.defineSkip(d.start),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(c),d._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),f=d,d=d.next}for(d=n;++h<o.length;)o[h][0]==="exit"&&o[h-1][0]==="enter"&&o[h][1].type===o[h-1][1].type&&o[h][1].start.line!==o[h][1].end.line&&(p=h+1,g.push(p),d._tokenizer=void 0,d.previous=void 0,d=d.next);for(a.events=[],d?(d._tokenizer=void 0,d.previous=void 0):g.pop(),h=g.length;h--;){const y=o.slice(g[h],g[h+1]),v=i.pop();u.push([v,v+y.length-1]),e.splice(v,2,y)}for(u.reverse(),h=-1;++h<u.length;)l[m+u[h][0]]=m+u[h][1],m+=u[h][1]-u[h][0]-1;return l}const Wy={resolve:Gy,tokenize:Ky},Yy={partial:!0,tokenize:Xy};function Gy(e){return Jh(e),e}function Ky(e,t){let n;return r;function r(o){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),s(o)}function s(o){return o===null?i(o):Ae(o)?e.check(Yy,a,i)(o):(e.consume(o),s)}function i(o){return e.exit("chunkContent"),e.exit("content"),t(o)}function a(o){return e.consume(o),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,s}}function Xy(e,t,n){const r=this;return s;function s(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),qe(e,i,"linePrefix")}function i(a){if(a===null||Ae(a))return n(a);const o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function em(e,t,n,r,s,i,a,o,u){const l=u||Number.POSITIVE_INFINITY;let c=0;return f;function f(y){return y===60?(e.enter(r),e.enter(s),e.enter(i),e.consume(y),e.exit(i),h):y===null||y===32||y===41||ws(y)?n(y):(e.enter(r),e.enter(a),e.enter(o),e.enter("chunkString",{contentType:"string"}),p(y))}function h(y){return y===62?(e.enter(i),e.consume(y),e.exit(i),e.exit(s),e.exit(r),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),d(y))}function d(y){return y===62?(e.exit("chunkString"),e.exit(o),h(y)):y===null||y===60||Ae(y)?n(y):(e.consume(y),y===92?m:d)}function m(y){return y===60||y===62||y===92?(e.consume(y),d):d(y)}function p(y){return!c&&(y===null||y===41||nt(y))?(e.exit("chunkString"),e.exit(o),e.exit(a),e.exit(r),t(y)):c<l&&y===40?(e.consume(y),c++,p):y===41?(e.consume(y),c--,p):y===null||y===32||y===40||ws(y)?n(y):(e.consume(y),y===92?g:p)}function g(y){return y===40||y===41||y===92?(e.consume(y),p):p(y)}}function tm(e,t,n,r,s,i){const a=this;let o=0,u;return l;function l(d){return e.enter(r),e.enter(s),e.consume(d),e.exit(s),e.enter(i),c}function c(d){return o>999||d===null||d===91||d===93&&!u||d===94&&!o&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):d===93?(e.exit(i),e.enter(s),e.consume(d),e.exit(s),e.exit(r),t):Ae(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),f(d))}function f(d){return d===null||d===91||d===93||Ae(d)||o++>999?(e.exit("chunkString"),c(d)):(e.consume(d),u||(u=!Ue(d)),d===92?h:f)}function h(d){return d===91||d===92||d===93?(e.consume(d),o++,f):f(d)}}function nm(e,t,n,r,s,i){let a;return o;function o(h){return h===34||h===39||h===40?(e.enter(r),e.enter(s),e.consume(h),e.exit(s),a=h===40?41:h,u):n(h)}function u(h){return h===a?(e.enter(s),e.consume(h),e.exit(s),e.exit(r),t):(e.enter(i),l(h))}function l(h){return h===a?(e.exit(i),u(a)):h===null?n(h):Ae(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),qe(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===a||h===null||Ae(h)?(e.exit("chunkString"),l(h)):(e.consume(h),h===92?f:c)}function f(h){return h===a||h===92?(e.consume(h),c):c(h)}}function ei(e,t){let n;return r;function r(s){return Ae(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):Ue(s)?qe(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const Qy={name:"definition",tokenize:Jy},Zy={partial:!0,tokenize:e2};function Jy(e,t,n){const r=this;let s;return i;function i(d){return e.enter("definition"),a(d)}function a(d){return tm.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)}function o(d){return s=Yt(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),d===58?(e.enter("definitionMarker"),e.consume(d),e.exit("definitionMarker"),u):n(d)}function u(d){return nt(d)?ei(e,l)(d):l(d)}function l(d){return em(e,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(d)}function c(d){return e.attempt(Zy,f,f)(d)}function f(d){return Ue(d)?qe(e,h,"whitespace")(d):h(d)}function h(d){return d===null||Ae(d)?(e.exit("definition"),r.parser.defined.push(s),t(d)):n(d)}}function e2(e,t,n){return r;function r(o){return nt(o)?ei(e,s)(o):n(o)}function s(o){return nm(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function i(o){return Ue(o)?qe(e,a,"whitespace")(o):a(o)}function a(o){return o===null||Ae(o)?t(o):n(o)}}const t2={name:"hardBreakEscape",tokenize:n2};function n2(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),s}function s(i){return Ae(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const r2={name:"headingAtx",resolve:i2,tokenize:s2};function i2(e,t){let n=e.length-2,r=3,s,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Pt(e,r,n-r+1,[["enter",s,t],["enter",i,t],["exit",i,t],["exit",s,t]])),e}function s2(e,t,n){let r=0;return s;function s(c){return e.enter("atxHeading"),i(c)}function i(c){return e.enter("atxHeadingSequence"),a(c)}function a(c){return c===35&&r++<6?(e.consume(c),a):c===null||nt(c)?(e.exit("atxHeadingSequence"),o(c)):n(c)}function o(c){return c===35?(e.enter("atxHeadingSequence"),u(c)):c===null||Ae(c)?(e.exit("atxHeading"),t(c)):Ue(c)?qe(e,o,"whitespace")(c):(e.enter("atxHeadingText"),l(c))}function u(c){return c===35?(e.consume(c),u):(e.exit("atxHeadingSequence"),o(c))}function l(c){return c===null||c===35||nt(c)?(e.exit("atxHeadingText"),o(c)):(e.consume(c),l)}}const a2=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],xc=["pre","script","style","textarea"],o2={concrete:!0,name:"htmlFlow",resolveTo:c2,tokenize:d2},u2={partial:!0,tokenize:h2},l2={partial:!0,tokenize:f2};function c2(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function d2(e,t,n){const r=this;let s,i,a,o,u;return l;function l(D){return c(D)}function c(D){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(D),f}function f(D){return D===33?(e.consume(D),h):D===47?(e.consume(D),i=!0,p):D===63?(e.consume(D),s=3,r.interrupt?t:R):wt(D)?(e.consume(D),a=String.fromCharCode(D),g):n(D)}function h(D){return D===45?(e.consume(D),s=2,d):D===91?(e.consume(D),s=5,o=0,m):wt(D)?(e.consume(D),s=4,r.interrupt?t:R):n(D)}function d(D){return D===45?(e.consume(D),r.interrupt?t:R):n(D)}function m(D){const Z="CDATA[";return D===Z.charCodeAt(o++)?(e.consume(D),o===Z.length?r.interrupt?t:N:m):n(D)}function p(D){return wt(D)?(e.consume(D),a=String.fromCharCode(D),g):n(D)}function g(D){if(D===null||D===47||D===62||nt(D)){const Z=D===47,oe=a.toLowerCase();return!Z&&!i&&xc.includes(oe)?(s=1,r.interrupt?t(D):N(D)):a2.includes(a.toLowerCase())?(s=6,Z?(e.consume(D),y):r.interrupt?t(D):N(D)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(D):i?v(D):T(D))}return D===45||Tt(D)?(e.consume(D),a+=String.fromCharCode(D),g):n(D)}function y(D){return D===62?(e.consume(D),r.interrupt?t:N):n(D)}function v(D){return Ue(D)?(e.consume(D),v):S(D)}function T(D){return D===47?(e.consume(D),S):D===58||D===95||wt(D)?(e.consume(D),C):Ue(D)?(e.consume(D),T):S(D)}function C(D){return D===45||D===46||D===58||D===95||Tt(D)?(e.consume(D),C):E(D)}function E(D){return D===61?(e.consume(D),k):Ue(D)?(e.consume(D),E):T(D)}function k(D){return D===null||D===60||D===61||D===62||D===96?n(D):D===34||D===39?(e.consume(D),u=D,_):Ue(D)?(e.consume(D),k):A(D)}function _(D){return D===u?(e.consume(D),u=null,I):D===null||Ae(D)?n(D):(e.consume(D),_)}function A(D){return D===null||D===34||D===39||D===47||D===60||D===61||D===62||D===96||nt(D)?E(D):(e.consume(D),A)}function I(D){return D===47||D===62||Ue(D)?T(D):n(D)}function S(D){return D===62?(e.consume(D),M):n(D)}function M(D){return D===null||Ae(D)?N(D):Ue(D)?(e.consume(D),M):n(D)}function N(D){return D===45&&s===2?(e.consume(D),F):D===60&&s===1?(e.consume(D),V):D===62&&s===4?(e.consume(D),$):D===63&&s===3?(e.consume(D),R):D===93&&s===5?(e.consume(D),q):Ae(D)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(u2,K,j)(D)):D===null||Ae(D)?(e.exit("htmlFlowData"),j(D)):(e.consume(D),N)}function j(D){return e.check(l2,P,K)(D)}function P(D){return e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),L}function L(D){return D===null||Ae(D)?j(D):(e.enter("htmlFlowData"),N(D))}function F(D){return D===45?(e.consume(D),R):N(D)}function V(D){return D===47?(e.consume(D),a="",B):N(D)}function B(D){if(D===62){const Z=a.toLowerCase();return xc.includes(Z)?(e.consume(D),$):N(D)}return wt(D)&&a.length<8?(e.consume(D),a+=String.fromCharCode(D),B):N(D)}function q(D){return D===93?(e.consume(D),R):N(D)}function R(D){return D===62?(e.consume(D),$):D===45&&s===2?(e.consume(D),R):N(D)}function $(D){return D===null||Ae(D)?(e.exit("htmlFlowData"),K(D)):(e.consume(D),$)}function K(D){return e.exit("htmlFlow"),t(D)}}function f2(e,t,n){const r=this;return s;function s(a){return Ae(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function h2(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Ai,t,n)}}const m2={name:"htmlText",tokenize:p2};function p2(e,t,n){const r=this;let s,i,a;return o;function o(R){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(R),u}function u(R){return R===33?(e.consume(R),l):R===47?(e.consume(R),E):R===63?(e.consume(R),T):wt(R)?(e.consume(R),A):n(R)}function l(R){return R===45?(e.consume(R),c):R===91?(e.consume(R),i=0,m):wt(R)?(e.consume(R),v):n(R)}function c(R){return R===45?(e.consume(R),d):n(R)}function f(R){return R===null?n(R):R===45?(e.consume(R),h):Ae(R)?(a=f,V(R)):(e.consume(R),f)}function h(R){return R===45?(e.consume(R),d):f(R)}function d(R){return R===62?F(R):R===45?h(R):f(R)}function m(R){const $="CDATA[";return R===$.charCodeAt(i++)?(e.consume(R),i===$.length?p:m):n(R)}function p(R){return R===null?n(R):R===93?(e.consume(R),g):Ae(R)?(a=p,V(R)):(e.consume(R),p)}function g(R){return R===93?(e.consume(R),y):p(R)}function y(R){return R===62?F(R):R===93?(e.consume(R),y):p(R)}function v(R){return R===null||R===62?F(R):Ae(R)?(a=v,V(R)):(e.consume(R),v)}function T(R){return R===null?n(R):R===63?(e.consume(R),C):Ae(R)?(a=T,V(R)):(e.consume(R),T)}function C(R){return R===62?F(R):T(R)}function E(R){return wt(R)?(e.consume(R),k):n(R)}function k(R){return R===45||Tt(R)?(e.consume(R),k):_(R)}function _(R){return Ae(R)?(a=_,V(R)):Ue(R)?(e.consume(R),_):F(R)}function A(R){return R===45||Tt(R)?(e.consume(R),A):R===47||R===62||nt(R)?I(R):n(R)}function I(R){return R===47?(e.consume(R),F):R===58||R===95||wt(R)?(e.consume(R),S):Ae(R)?(a=I,V(R)):Ue(R)?(e.consume(R),I):F(R)}function S(R){return R===45||R===46||R===58||R===95||Tt(R)?(e.consume(R),S):M(R)}function M(R){return R===61?(e.consume(R),N):Ae(R)?(a=M,V(R)):Ue(R)?(e.consume(R),M):I(R)}function N(R){return R===null||R===60||R===61||R===62||R===96?n(R):R===34||R===39?(e.consume(R),s=R,j):Ae(R)?(a=N,V(R)):Ue(R)?(e.consume(R),N):(e.consume(R),P)}function j(R){return R===s?(e.consume(R),s=void 0,L):R===null?n(R):Ae(R)?(a=j,V(R)):(e.consume(R),j)}function P(R){return R===null||R===34||R===39||R===60||R===61||R===96?n(R):R===47||R===62||nt(R)?I(R):(e.consume(R),P)}function L(R){return R===47||R===62||nt(R)?I(R):n(R)}function F(R){return R===62?(e.consume(R),e.exit("htmlTextData"),e.exit("htmlText"),t):n(R)}function V(R){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(R),e.exit("lineEnding"),B}function B(R){return Ue(R)?qe(e,q,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(R):q(R)}function q(R){return e.enter("htmlTextData"),a(R)}}const Lu={name:"labelEnd",resolveAll:y2,resolveTo:E2,tokenize:T2},g2={tokenize:v2},x2={tokenize:k2},b2={tokenize:w2};function y2(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const s=r.type==="labelImage"?4:2;r.type="data",t+=s}}return e.length!==n.length&&Pt(e,0,e.length,n),e}function E2(e,t){let n=e.length,r=0,s,i,a,o;for(;n--;)if(s=e[n][1],i){if(s.type==="link"||s.type==="labelLink"&&s._inactive)break;e[n][0]==="enter"&&s.type==="labelLink"&&(s._inactive=!0)}else if(a){if(e[n][0]==="enter"&&(s.type==="labelImage"||s.type==="labelLink")&&!s._balanced&&(i=n,s.type!=="labelLink")){r=2;break}}else s.type==="labelEnd"&&(a=n);const u={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},l={type:"label",start:{...e[i][1].start},end:{...e[a][1].end}},c={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[a-2][1].start}};return o=[["enter",u,t],["enter",l,t]],o=jt(o,e.slice(i+1,i+r+3)),o=jt(o,[["enter",c,t]]),o=jt(o,Ks(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),o=jt(o,[["exit",c,t],e[a-2],e[a-1],["exit",l,t]]),o=jt(o,e.slice(a+1)),o=jt(o,[["exit",u,t]]),Pt(e,i,e.length,o),e}function T2(e,t,n){const r=this;let s=r.events.length,i,a;for(;s--;)if((r.events[s][1].type==="labelImage"||r.events[s][1].type==="labelLink")&&!r.events[s][1]._balanced){i=r.events[s][1];break}return o;function o(h){return i?i._inactive?f(h):(a=r.parser.defined.includes(Yt(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),u):n(h)}function u(h){return h===40?e.attempt(g2,c,a?c:f)(h):h===91?e.attempt(x2,c,a?l:f)(h):a?c(h):f(h)}function l(h){return e.attempt(b2,c,f)(h)}function c(h){return t(h)}function f(h){return i._balanced=!0,n(h)}}function v2(e,t,n){return r;function r(f){return e.enter("resource"),e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),s}function s(f){return nt(f)?ei(e,i)(f):i(f)}function i(f){return f===41?c(f):em(e,a,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(f)}function a(f){return nt(f)?ei(e,u)(f):c(f)}function o(f){return n(f)}function u(f){return f===34||f===39||f===40?nm(e,l,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(f):c(f)}function l(f){return nt(f)?ei(e,c)(f):c(f)}function c(f){return f===41?(e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),e.exit("resource"),t):n(f)}}function k2(e,t,n){const r=this;return s;function s(o){return tm.call(r,e,i,a,"reference","referenceMarker","referenceString")(o)}function i(o){return r.parser.defined.includes(Yt(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(o):n(o)}function a(o){return n(o)}}function w2(e,t,n){return r;function r(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),s}function s(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):n(i)}}const S2={name:"labelStartImage",resolveAll:Lu.resolveAll,tokenize:A2};function A2(e,t,n){const r=this;return s;function s(o){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(o),e.exit("labelImageMarker"),i}function i(o){return o===91?(e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelImage"),a):n(o)}function a(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(o):t(o)}}const C2={name:"labelStartLink",resolveAll:Lu.resolveAll,tokenize:_2};function _2(e,t,n){const r=this;return s;function s(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),i}function i(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const Ra={name:"lineEnding",tokenize:I2};function I2(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),qe(e,t,"linePrefix")}}const os={name:"thematicBreak",tokenize:N2};function N2(e,t,n){let r=0,s;return i;function i(l){return e.enter("thematicBreak"),a(l)}function a(l){return s=l,o(l)}function o(l){return l===s?(e.enter("thematicBreakSequence"),u(l)):r>=3&&(l===null||Ae(l))?(e.exit("thematicBreak"),t(l)):n(l)}function u(l){return l===s?(e.consume(l),r++,u):(e.exit("thematicBreakSequence"),Ue(l)?qe(e,o,"whitespace")(l):o(l))}}const It={continuation:{tokenize:P2},exit:O2,name:"list",tokenize:M2},R2={partial:!0,tokenize:F2},L2={partial:!0,tokenize:D2};function M2(e,t,n){const r=this,s=r.events[r.events.length-1];let i=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,a=0;return o;function o(d){const m=r.containerState.type||(d===42||d===43||d===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||d===r.containerState.marker:Co(d)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),d===42||d===45?e.check(os,n,l)(d):l(d);if(!r.interrupt||d===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(d)}return n(d)}function u(d){return Co(d)&&++a<10?(e.consume(d),u):(!r.interrupt||a<2)&&(r.containerState.marker?d===r.containerState.marker:d===41||d===46)?(e.exit("listItemValue"),l(d)):n(d)}function l(d){return e.enter("listItemMarker"),e.consume(d),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||d,e.check(Ai,r.interrupt?n:c,e.attempt(R2,h,f))}function c(d){return r.containerState.initialBlankLine=!0,i++,h(d)}function f(d){return Ue(d)?(e.enter("listItemPrefixWhitespace"),e.consume(d),e.exit("listItemPrefixWhitespace"),h):n(d)}function h(d){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(d)}}function P2(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Ai,s,i);function s(o){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,qe(e,t,"listItemIndent",r.containerState.size+1)(o)}function i(o){return r.containerState.furtherBlankLines||!Ue(o)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(o)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(L2,t,a)(o))}function a(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,qe(e,e.attempt(It,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function D2(e,t,n){const r=this;return qe(e,s,"listItemIndent",r.containerState.size+1);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function O2(e){e.exit(this.containerState.type)}function F2(e,t,n){const r=this;return qe(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(i){const a=r.events[r.events.length-1];return!Ue(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const bc={name:"setextUnderline",resolveTo:B2,tokenize:j2};function B2(e,t){let n=e.length,r,s,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",i?(e.splice(s,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function j2(e,t,n){const r=this;let s;return i;function i(l){let c=r.events.length,f;for(;c--;)if(r.events[c][1].type!=="lineEnding"&&r.events[c][1].type!=="linePrefix"&&r.events[c][1].type!=="content"){f=r.events[c][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),s=l,a(l)):n(l)}function a(l){return e.enter("setextHeadingLineSequence"),o(l)}function o(l){return l===s?(e.consume(l),o):(e.exit("setextHeadingLineSequence"),Ue(l)?qe(e,u,"lineSuffix")(l):u(l))}function u(l){return l===null||Ae(l)?(e.exit("setextHeadingLine"),t(l)):n(l)}}const H2={tokenize:U2};function U2(e){const t=this,n=e.attempt(Ai,r,e.attempt(this.parser.constructs.flowInitial,s,qe(e,e.attempt(this.parser.constructs.flow,s,e.attempt(Wy,s)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const z2={resolveAll:im()},V2=rm("string"),q2=rm("text");function rm(e){return{resolveAll:im(e==="text"?$2:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],i=n.attempt(s,a,o);return a;function a(c){return l(c)?i(c):o(c)}function o(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),u}function u(c){return l(c)?(n.exit("data"),i(c)):(n.consume(c),u)}function l(c){if(c===null)return!0;const f=s[c];let h=-1;if(f)for(;++h<f.length;){const d=f[h];if(!d.previous||d.previous.call(r,r.previous))return!0}return!1}}}function im(e){return t;function t(n,r){let s=-1,i;for(;++s<=n.length;)i===void 0?n[s]&&n[s][1].type==="data"&&(i=s,s++):(!n[s]||n[s][1].type!=="data")&&(s!==i+2&&(n[i][1].end=n[s-1][1].end,n.splice(i+2,s-i-2),s=i+2),i=void 0);return e?e(n,r):n}}function $2(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],s=t.sliceStream(r);let i=s.length,a=-1,o=0,u;for(;i--;){const l=s[i];if(typeof l=="string"){for(a=l.length;l.charCodeAt(a-1)===32;)o++,a--;if(a)break;a=-1}else if(l===-2)u=!0,o++;else if(l!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(o=0),o){const l={type:n===e.length||u||o<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?a:r.start._bufferIndex+a,_index:r.start._index+i,line:r.end.line,column:r.end.column-o,offset:r.end.offset-o},end:{...r.end}};r.end={...l.start},r.start.offset===r.end.offset?Object.assign(r,l):(e.splice(n,0,["enter",l,t],["exit",l,t]),n+=2)}n++}return e}const W2={42:It,43:It,45:It,48:It,49:It,50:It,51:It,52:It,53:It,54:It,55:It,56:It,57:It,62:Xh},Y2={91:Qy},G2={[-2]:Na,[-1]:Na,32:Na},K2={35:r2,42:os,45:[bc,os],60:o2,61:bc,95:os,96:gc,126:gc},X2={38:Zh,92:Qh},Q2={[-5]:Ra,[-4]:Ra,[-3]:Ra,33:S2,38:Zh,42:_o,60:[Cy,m2],91:C2,92:[t2,Qh],93:Lu,95:_o,96:Hy},Z2={null:[_o,z2]},J2={null:[42,95]},eE={null:[]},tE=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:J2,contentInitial:Y2,disable:eE,document:W2,flow:K2,flowInitial:G2,insideSpan:Z2,string:X2,text:Q2},Symbol.toStringTag,{value:"Module"}));function nE(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const s={},i=[];let a=[],o=[];const u={attempt:_(E),check:_(k),consume:v,enter:T,exit:C,interrupt:_(k,{interrupt:!0})},l={code:null,containerState:{},defineSkip:p,events:[],now:m,parser:e,previous:null,sliceSerialize:h,sliceStream:d,write:f};let c=t.tokenize.call(l,u);return t.resolveAll&&i.push(t),l;function f(M){return a=jt(a,M),g(),a[a.length-1]!==null?[]:(A(t,0),l.events=Ks(i,l.events,l),l.events)}function h(M,N){return iE(d(M),N)}function d(M){return rE(a,M)}function m(){const{_bufferIndex:M,_index:N,line:j,column:P,offset:L}=r;return{_bufferIndex:M,_index:N,line:j,column:P,offset:L}}function p(M){s[M.line]=M.column,S()}function g(){let M;for(;r._index<a.length;){const N=a[r._index];if(typeof N=="string")for(M=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===M&&r._bufferIndex<N.length;)y(N.charCodeAt(r._bufferIndex));else y(N)}}function y(M){c=c(M)}function v(M){Ae(M)?(r.line++,r.column=1,r.offset+=M===-3?2:1,S()):M!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=M}function T(M,N){const j=N||{};return j.type=M,j.start=m(),l.events.push(["enter",j,l]),o.push(j),j}function C(M){const N=o.pop();return N.end=m(),l.events.push(["exit",N,l]),N}function E(M,N){A(M,N.from)}function k(M,N){N.restore()}function _(M,N){return j;function j(P,L,F){let V,B,q,R;return Array.isArray(P)?K(P):"tokenize"in P?K([P]):$(P);function $(z){return J;function J(X){const ce=X!==null&&z[X],he=X!==null&&z.null,re=[...Array.isArray(ce)?ce:ce?[ce]:[],...Array.isArray(he)?he:he?[he]:[]];return K(re)(X)}}function K(z){return V=z,B=0,z.length===0?F:D(z[B])}function D(z){return J;function J(X){return R=I(),q=z,z.partial||(l.currentConstruct=z),z.name&&l.parser.constructs.disable.null.includes(z.name)?oe():z.tokenize.call(N?Object.assign(Object.create(l),N):l,u,Z,oe)(X)}}function Z(z){return M(q,R),L}function oe(z){return R.restore(),++B<V.length?D(V[B]):F}}}function A(M,N){M.resolveAll&&!i.includes(M)&&i.push(M),M.resolve&&Pt(l.events,N,l.events.length-N,M.resolve(l.events.slice(N),l)),M.resolveTo&&(l.events=M.resolveTo(l.events,l))}function I(){const M=m(),N=l.previous,j=l.currentConstruct,P=l.events.length,L=Array.from(o);return{from:P,restore:F};function F(){r=M,l.previous=N,l.currentConstruct=j,l.events.length=P,o=L,S()}}function S(){r.line in s&&r.column<2&&(r.column=s[r.line],r.offset+=s[r.line]-1)}}function rE(e,t){const n=t.start._index,r=t.start._bufferIndex,s=t.end._index,i=t.end._bufferIndex;let a;if(n===s)a=[e[n].slice(r,i)];else{if(a=e.slice(n,s),r>-1){const o=a[0];typeof o=="string"?a[0]=o.slice(r):a.shift()}i>0&&a.push(e[s].slice(0,i))}return a}function iE(e,t){let n=-1;const r=[];let s;for(;++n<e.length;){const i=e[n];let a;if(typeof i=="string")a=i;else switch(i){case-5:{a="\r";break}case-4:{a=`
414
414
  `;break}case-3:{a=`\r
415
415
  `;break}case-2:{a=t?" ":" ";break}case-1:{if(!t&&s)continue;a=" ";break}default:a=String.fromCharCode(i)}s=i===-2,r.push(a)}return r.join("")}function sE(e){const r={constructs:Gh([tE,...(e||{}).extensions||[]]),content:s(Ey),defined:[],document:s(vy),flow:s(H2),lazy:{},string:s(V2),text:s(q2)};return r;function s(i){return a;function a(o){return nE(r,i,o)}}}function aE(e){for(;!Jh(e););return e}const yc=/[\0\t\n\r]/g;function oE(){let e=1,t="",n=!0,r;return s;function s(i,a,o){const u=[];let l,c,f,h,d;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(a||void 0).decode(i)),f=0,t="",n&&(i.charCodeAt(0)===65279&&f++,n=void 0);f<i.length;){if(yc.lastIndex=f,l=yc.exec(i),h=l&&l.index!==void 0?l.index:i.length,d=i.charCodeAt(h),!l){t=i.slice(f);break}if(d===10&&f===h&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),f<h&&(u.push(i.slice(f,h)),e+=h-f),d){case 0:{u.push(65533),e++;break}case 9:{for(c=Math.ceil(e/4)*4,u.push(-2);e++<c;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}f=h+1}return o&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}const uE=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function lE(e){return e.replace(uE,cE)}function cE(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const s=n.charCodeAt(1),i=s===120||s===88;return Kh(n.slice(i?2:1),i?16:10)}return Ru(n)||e}const sm={}.hasOwnProperty;function dE(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),fE(n)(aE(sE(n).document().write(oE()(e,t,!0))))}function fE(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(te),autolinkProtocol:I,autolinkEmail:I,atxHeading:i(Le),blockQuote:i(he),characterEscape:I,characterReference:I,codeFenced:i(re),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(re,a),codeText:i(ne,a),codeTextData:I,data:I,codeFlowValue:I,definition:i(xe),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(ve),hardBreakEscape:i(Be),hardBreakTrailing:i(Be),htmlFlow:i(Ee,a),htmlFlowData:I,htmlText:i(Ee,a),htmlTextData:I,image:i(Oe),label:a,link:i(te),listItem:i(be),listItemValue:h,listOrdered:i(Ie,f),listUnordered:i(Ie),paragraph:i(ze),reference:D,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(Le),strong:i(rt),thematicBreak:i(Xe)},exit:{atxHeading:u(),atxHeadingSequence:E,autolink:u(),autolinkEmail:ce,autolinkProtocol:X,blockQuote:u(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:oe,characterReferenceMarkerNumeric:oe,characterReferenceValue:z,characterReference:J,codeFenced:u(g),codeFencedFence:p,codeFencedFenceInfo:d,codeFencedFenceMeta:m,codeFlowValue:S,codeIndented:u(y),codeText:u(L),codeTextData:S,data:S,definition:u(),definitionDestinationString:C,definitionLabelString:v,definitionTitleString:T,emphasis:u(),hardBreakEscape:u(N),hardBreakTrailing:u(N),htmlFlow:u(j),htmlFlowData:S,htmlText:u(P),htmlTextData:S,image:u(V),label:q,labelText:B,lineEnding:M,link:u(F),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:Z,resourceDestinationString:R,resourceTitleString:$,resource:K,setextHeading:u(A),setextHeadingLineSequence:_,setextHeadingText:k,strong:u(),thematicBreak:u()}};am(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(G){let se={type:"root",children:[]};const pe={stack:[se],tokenStack:[],config:t,enter:o,exit:l,buffer:a,resume:c,data:n},de=[];let Ne=-1;for(;++Ne<G.length;)if(G[Ne][1].type==="listOrdered"||G[Ne][1].type==="listUnordered")if(G[Ne][0]==="enter")de.push(Ne);else{const _e=de.pop();Ne=s(G,_e,Ne)}for(Ne=-1;++Ne<G.length;){const _e=t[G[Ne][0]];sm.call(_e,G[Ne][1].type)&&_e[G[Ne][1].type].call(Object.assign({sliceSerialize:G[Ne][2].sliceSerialize},pe),G[Ne][1])}if(pe.tokenStack.length>0){const _e=pe.tokenStack[pe.tokenStack.length-1];(_e[1]||Ec).call(pe,void 0,_e[0])}for(se.position={start:mn(G.length>0?G[0][1].start:{line:1,column:1,offset:0}),end:mn(G.length>0?G[G.length-2][1].end:{line:1,column:1,offset:0})},Ne=-1;++Ne<t.transforms.length;)se=t.transforms[Ne](se)||se;return se}function s(G,se,pe){let de=se-1,Ne=-1,_e=!1,Te,Pe,Ve,We;for(;++de<=pe;){const ye=G[de];switch(ye[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{ye[0]==="enter"?Ne++:Ne--,We=void 0;break}case"lineEndingBlank":{ye[0]==="enter"&&(Te&&!We&&!Ne&&!Ve&&(Ve=de),We=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:We=void 0}if(!Ne&&ye[0]==="enter"&&ye[1].type==="listItemPrefix"||Ne===-1&&ye[0]==="exit"&&(ye[1].type==="listUnordered"||ye[1].type==="listOrdered")){if(Te){let Ye=de;for(Pe=void 0;Ye--;){const Fe=G[Ye];if(Fe[1].type==="lineEnding"||Fe[1].type==="lineEndingBlank"){if(Fe[0]==="exit")continue;Pe&&(G[Pe][1].type="lineEndingBlank",_e=!0),Fe[1].type="lineEnding",Pe=Ye}else if(!(Fe[1].type==="linePrefix"||Fe[1].type==="blockQuotePrefix"||Fe[1].type==="blockQuotePrefixWhitespace"||Fe[1].type==="blockQuoteMarker"||Fe[1].type==="listItemIndent"))break}Ve&&(!Pe||Ve<Pe)&&(Te._spread=!0),Te.end=Object.assign({},Pe?G[Pe][1].start:ye[1].end),G.splice(Pe||de,0,["exit",Te,ye[2]]),de++,pe++}if(ye[1].type==="listItemPrefix"){const Ye={type:"listItem",_spread:!1,start:Object.assign({},ye[1].start),end:void 0};Te=Ye,G.splice(de,0,["enter",Ye,ye[2]]),de++,pe++,Ve=void 0,We=!0}}}return G[se][1]._spread=_e,pe}function i(G,se){return pe;function pe(de){o.call(this,G(de),de),se&&se.call(this,de)}}function a(){this.stack.push({type:"fragment",children:[]})}function o(G,se,pe){this.stack[this.stack.length-1].children.push(G),this.stack.push(G),this.tokenStack.push([se,pe||void 0]),G.position={start:mn(se.start),end:void 0}}function u(G){return se;function se(pe){G&&G.call(this,pe),l.call(this,pe)}}function l(G,se){const pe=this.stack.pop(),de=this.tokenStack.pop();if(de)de[0].type!==G.type&&(se?se.call(this,G,de[0]):(de[1]||Ec).call(this,G,de[0]));else throw new Error("Cannot close `"+G.type+"` ("+Jr({start:G.start,end:G.end})+"): it’s not open");pe.position.end=mn(G.end)}function c(){return Nu(this.stack.pop())}function f(){this.data.expectingFirstListItemValue=!0}function h(G){if(this.data.expectingFirstListItemValue){const se=this.stack[this.stack.length-2];se.start=Number.parseInt(this.sliceSerialize(G),10),this.data.expectingFirstListItemValue=void 0}}function d(){const G=this.resume(),se=this.stack[this.stack.length-1];se.lang=G}function m(){const G=this.resume(),se=this.stack[this.stack.length-1];se.meta=G}function p(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){const G=this.resume(),se=this.stack[this.stack.length-1];se.value=G.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function y(){const G=this.resume(),se=this.stack[this.stack.length-1];se.value=G.replace(/(\r?\n|\r)$/g,"")}function v(G){const se=this.resume(),pe=this.stack[this.stack.length-1];pe.label=se,pe.identifier=Yt(this.sliceSerialize(G)).toLowerCase()}function T(){const G=this.resume(),se=this.stack[this.stack.length-1];se.title=G}function C(){const G=this.resume(),se=this.stack[this.stack.length-1];se.url=G}function E(G){const se=this.stack[this.stack.length-1];if(!se.depth){const pe=this.sliceSerialize(G).length;se.depth=pe}}function k(){this.data.setextHeadingSlurpLineEnding=!0}function _(G){const se=this.stack[this.stack.length-1];se.depth=this.sliceSerialize(G).codePointAt(0)===61?1:2}function A(){this.data.setextHeadingSlurpLineEnding=void 0}function I(G){const pe=this.stack[this.stack.length-1].children;let de=pe[pe.length-1];(!de||de.type!=="text")&&(de=Me(),de.position={start:mn(G.start),end:void 0},pe.push(de)),this.stack.push(de)}function S(G){const se=this.stack.pop();se.value+=this.sliceSerialize(G),se.position.end=mn(G.end)}function M(G){const se=this.stack[this.stack.length-1];if(this.data.atHardBreak){const pe=se.children[se.children.length-1];pe.position.end=mn(G.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(se.type)&&(I.call(this,G),S.call(this,G))}function N(){this.data.atHardBreak=!0}function j(){const G=this.resume(),se=this.stack[this.stack.length-1];se.value=G}function P(){const G=this.resume(),se=this.stack[this.stack.length-1];se.value=G}function L(){const G=this.resume(),se=this.stack[this.stack.length-1];se.value=G}function F(){const G=this.stack[this.stack.length-1];if(this.data.inReference){const se=this.data.referenceType||"shortcut";G.type+="Reference",G.referenceType=se,delete G.url,delete G.title}else delete G.identifier,delete G.label;this.data.referenceType=void 0}function V(){const G=this.stack[this.stack.length-1];if(this.data.inReference){const se=this.data.referenceType||"shortcut";G.type+="Reference",G.referenceType=se,delete G.url,delete G.title}else delete G.identifier,delete G.label;this.data.referenceType=void 0}function B(G){const se=this.sliceSerialize(G),pe=this.stack[this.stack.length-2];pe.label=lE(se),pe.identifier=Yt(se).toLowerCase()}function q(){const G=this.stack[this.stack.length-1],se=this.resume(),pe=this.stack[this.stack.length-1];if(this.data.inReference=!0,pe.type==="link"){const de=G.children;pe.children=de}else pe.alt=se}function R(){const G=this.resume(),se=this.stack[this.stack.length-1];se.url=G}function $(){const G=this.resume(),se=this.stack[this.stack.length-1];se.title=G}function K(){this.data.inReference=void 0}function D(){this.data.referenceType="collapsed"}function Z(G){const se=this.resume(),pe=this.stack[this.stack.length-1];pe.label=se,pe.identifier=Yt(this.sliceSerialize(G)).toLowerCase(),this.data.referenceType="full"}function oe(G){this.data.characterReferenceType=G.type}function z(G){const se=this.sliceSerialize(G),pe=this.data.characterReferenceType;let de;pe?(de=Kh(se,pe==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):de=Ru(se);const Ne=this.stack[this.stack.length-1];Ne.value+=de}function J(G){const se=this.stack.pop();se.position.end=mn(G.end)}function X(G){S.call(this,G);const se=this.stack[this.stack.length-1];se.url=this.sliceSerialize(G)}function ce(G){S.call(this,G);const se=this.stack[this.stack.length-1];se.url="mailto:"+this.sliceSerialize(G)}function he(){return{type:"blockquote",children:[]}}function re(){return{type:"code",lang:null,meta:null,value:""}}function ne(){return{type:"inlineCode",value:""}}function xe(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ve(){return{type:"emphasis",children:[]}}function Le(){return{type:"heading",depth:0,children:[]}}function Be(){return{type:"break"}}function Ee(){return{type:"html",value:""}}function Oe(){return{type:"image",title:null,url:"",alt:null}}function te(){return{type:"link",title:null,url:"",children:[]}}function Ie(G){return{type:"list",ordered:G.type==="listOrdered",start:null,spread:G._spread,children:[]}}function be(G){return{type:"listItem",spread:G._spread,checked:null,children:[]}}function ze(){return{type:"paragraph",children:[]}}function rt(){return{type:"strong",children:[]}}function Me(){return{type:"text",value:""}}function Xe(){return{type:"thematicBreak"}}}function mn(e){return{line:e.line,column:e.column,offset:e.offset}}function am(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?am(e,r):hE(e,r)}}function hE(e,t){let n;for(n in t)if(sm.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Ec(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Jr({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Jr({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Jr({start:t.start,end:t.end})+") is still open")}function mE(e){const t=this;t.parser=n;function n(r){return dE(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function pE(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function gE(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
@@ -438,7 +438,7 @@ Based on my performance, decide what comes next: explain why I got questions wro
438
438
  `,...i.current()});return/^[\t ]/.test(l)&&(l=xi(l.charCodeAt(0))+l.slice(1)),l=l?a+" "+l:a,n.options.closeAtx&&(l+=" "+a),u(),o(),l}km.peek=Pv;function km(e){return e.value||""}function Pv(){return"<"}wm.peek=Dv;function wm(e,t,n,r){const s=Bu(n),i=s==='"'?"Quote":"Apostrophe",a=n.enter("image");let o=n.enter("label");const u=n.createTracker(r);let l=u.move("![");return l+=u.move(n.safe(e.alt,{before:l,after:"]",...u.current()})),l+=u.move("]("),o(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(o=n.enter("destinationLiteral"),l+=u.move("<"),l+=u.move(n.safe(e.url,{before:l,after:">",...u.current()})),l+=u.move(">")):(o=n.enter("destinationRaw"),l+=u.move(n.safe(e.url,{before:l,after:e.title?" ":")",...u.current()}))),o(),e.title&&(o=n.enter(`title${i}`),l+=u.move(" "+s),l+=u.move(n.safe(e.title,{before:l,after:s,...u.current()})),l+=u.move(s),o()),l+=u.move(")"),a(),l}function Dv(){return"!"}Sm.peek=Ov;function Sm(e,t,n,r){const s=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const o=n.createTracker(r);let u=o.move("![");const l=n.safe(e.alt,{before:u,after:"]",...o.current()});u+=o.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...o.current()});return a(),n.stack=c,i(),s==="full"||!l||l!==f?u+=o.move(f+"]"):s==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function Ov(){return"!"}Am.peek=Fv;function Am(e,t,n){let r=e.value||"",s="`",i=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(r);)s+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i<n.unsafe.length;){const a=n.unsafe[i],o=n.compilePattern(a);let u;if(a.atBreak)for(;u=o.exec(r);){let l=u.index;r.charCodeAt(l)===10&&r.charCodeAt(l-1)===13&&l--,r=r.slice(0,l)+" "+r.slice(u.index+1)}}return s+r+s}function Fv(){return"`"}function Cm(e,t){const n=Nu(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}_m.peek=Bv;function _m(e,t,n,r){const s=Bu(n),i=s==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let o,u;if(Cm(e,n)){const c=n.stack;n.stack=[],o=n.enter("autolink");let f=a.move("<");return f+=a.move(n.containerPhrasing(e,{before:f,after:">",...a.current()})),f+=a.move(">"),o(),n.stack=c,f}o=n.enter("link"),u=n.enter("label");let l=a.move("[");return l+=a.move(n.containerPhrasing(e,{before:l,after:"](",...a.current()})),l+=a.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,{before:l,after:">",...a.current()})),l+=a.move(">")):(u=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,{before:l,after:e.title?" ":")",...a.current()}))),u(),e.title&&(u=n.enter(`title${i}`),l+=a.move(" "+s),l+=a.move(n.safe(e.title,{before:l,after:s,...a.current()})),l+=a.move(s),u()),l+=a.move(")"),o(),l}function Bv(e,t,n){return Cm(e,n)?"<":"["}Im.peek=jv;function Im(e,t,n,r){const s=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const o=n.createTracker(r);let u=o.move("[");const l=n.containerPhrasing(e,{before:u,after:"]",...o.current()});u+=o.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...o.current()});return a(),n.stack=c,i(),s==="full"||!l||l!==f?u+=o.move(f+"]"):s==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function jv(){return"["}function ju(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function Hv(e){const t=ju(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Uv(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Nm(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function zv(e,t,n,r){const s=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?Uv(n):ju(n);const o=e.ordered?a==="."?")":".":Hv(n);let u=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const c=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&c&&(!c.children||!c.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(u=!0),Nm(n)===a&&c){let f=-1;for(;++f<e.children.length;){const h=e.children[f];if(h&&h.type==="listItem"&&h.children&&h.children[0]&&h.children[0].type==="thematicBreak"){u=!0;break}}}}u&&(a=o),n.bulletCurrent=a;const l=n.containerFlow(e,r);return n.bulletLastUsed=a,n.bulletCurrent=i,s(),l}function Vv(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function qv(e,t,n,r){const s=Vv(n);let i=n.bulletCurrent||ju(n);t&&t.type==="list"&&t.ordered&&(i=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(s==="tab"||s==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const o=n.createTracker(r);o.move(i+" ".repeat(a-i.length)),o.shift(a);const u=n.enter("listItem"),l=n.indentLines(n.containerFlow(e,o.current()),c);return u(),l;function c(f,h,d){return h?(d?"":" ".repeat(a))+f:(d?i:i+" ".repeat(a-i.length))+f}}function $v(e,t,n,r){const s=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),s(),a}const Wv=Qs(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Yv(e,t,n,r){return(e.children.some(function(a){return Wv(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Gv(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Rm.peek=Kv;function Rm(e,t,n,r){const s=Gv(n),i=n.enter("strong"),a=n.createTracker(r),o=a.move(s+s);let u=a.move(n.containerPhrasing(e,{after:s,before:o,...a.current()}));const l=u.charCodeAt(0),c=As(r.before.charCodeAt(r.before.length-1),l,s);c.inside&&(u=xi(l)+u.slice(1));const f=u.charCodeAt(u.length-1),h=As(r.after.charCodeAt(0),f,s);h.inside&&(u=u.slice(0,-1)+xi(f));const d=a.move(s+s);return i(),n.attentionEncodeSurroundingInfo={after:h.outside,before:c.outside},o+u+d}function Kv(e,t,n){return n.options.strong||"*"}function Xv(e,t,n,r){return n.safe(e.value,r)}function Qv(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Zv(e,t,n){const r=(Nm(n)+(n.options.ruleSpaces?" ":"")).repeat(Qv(n));return n.options.ruleSpaces?r.slice(0,-1):r}const Lm={blockquote:Tv,break:Hc,code:Cv,definition:Iv,emphasis:vm,hardBreak:Hc,heading:Mv,html:km,image:wm,imageReference:Sm,inlineCode:Am,link:_m,linkReference:Im,list:zv,listItem:qv,paragraph:$v,root:Yv,strong:Rm,text:Xv,thematicBreak:Zv};function Jv(){return{enter:{table:ek,tableData:Uc,tableHeader:Uc,tableRow:nk},exit:{codeText:rk,table:tk,tableData:Va,tableHeader:Va,tableRow:Va}}}function ek(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function tk(e){this.exit(e),this.data.inTable=void 0}function nk(e){this.enter({type:"tableRow",children:[]},e)}function Va(e){this.exit(e)}function Uc(e){this.enter({type:"tableCell",children:[]},e)}function rk(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,ik));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function ik(e,t){return t==="|"?t:e}function sk(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,s=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
439
439
  `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:a,tableCell:u,tableRow:o}};function a(d,m,p,g){return l(c(d,p,g),d.align)}function o(d,m,p,g){const y=f(d,p,g),v=l([y]);return v.slice(0,v.indexOf(`
440
440
  `))}function u(d,m,p,g){const y=p.enter("tableCell"),v=p.enter("phrasing"),T=p.containerPhrasing(d,{...g,before:i,after:i});return v(),y(),T}function l(d,m){return yv(d,{align:m,alignDelimiters:r,padding:n,stringLength:s})}function c(d,m,p){const g=d.children;let y=-1;const v=[],T=m.enter("table");for(;++y<g.length;)v[y]=f(g[y],m,p);return T(),v}function f(d,m,p){const g=d.children;let y=-1;const v=[],T=m.enter("tableRow");for(;++y<g.length;)v[y]=u(g[y],d,m,p);return T(),v}function h(d,m,p){let g=Lm.inlineCode(d,m,p);return p.stack.includes("tableCell")&&(g=g.replace(/\|/g,"\\$&")),g}}function ak(){return{exit:{taskListCheckValueChecked:zc,taskListCheckValueUnchecked:zc,paragraph:uk}}}function ok(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:lk}}}function zc(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function uk(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const s=t.children;let i=-1,a;for(;++i<s.length;){const o=s[i];if(o.type==="paragraph"){a=o;break}}a===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function lk(e,t,n,r){const s=e.children[0],i=typeof e.checked=="boolean"&&s&&s.type==="paragraph",a="["+(e.checked?"x":" ")+"] ",o=n.createTracker(r);i&&o.move(a);let u=Lm.listItem(e,t,n,{...r,...o.current()});return i&&(u=u.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),u;function l(c){return c+a}}function ck(){return[zT(),lv(),hv(),Jv(),ak()]}function dk(e){return{extensions:[VT(),cv(e),mv(),sk(e),ok()]}}const fk={tokenize:bk,partial:!0},Mm={tokenize:yk,partial:!0},Pm={tokenize:Ek,partial:!0},Dm={tokenize:Tk,partial:!0},hk={tokenize:vk,partial:!0},Om={name:"wwwAutolink",tokenize:gk,previous:Bm},Fm={name:"protocolAutolink",tokenize:xk,previous:jm},fn={name:"emailAutolink",tokenize:pk,previous:Hm},an={};function mk(){return{text:an}}let Ln=48;for(;Ln<123;)an[Ln]=fn,Ln++,Ln===58?Ln=65:Ln===91&&(Ln=97);an[43]=fn;an[45]=fn;an[46]=fn;an[95]=fn;an[72]=[fn,Fm];an[104]=[fn,Fm];an[87]=[fn,Om];an[119]=[fn,Om];function pk(e,t,n){const r=this;let s,i;return a;function a(f){return!Mo(f)||!Hm.call(r,r.previous)||Hu(r.events)?n(f):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),o(f))}function o(f){return Mo(f)?(e.consume(f),o):f===64?(e.consume(f),u):n(f)}function u(f){return f===46?e.check(hk,c,l)(f):f===45||f===95||Tt(f)?(i=!0,e.consume(f),u):c(f)}function l(f){return e.consume(f),s=!0,u}function c(f){return i&&s&&wt(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(f)):n(f)}}function gk(e,t,n){const r=this;return s;function s(a){return a!==87&&a!==119||!Bm.call(r,r.previous)||Hu(r.events)?n(a):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(fk,e.attempt(Mm,e.attempt(Pm,i),n),n)(a))}function i(a){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(a)}}function xk(e,t,n){const r=this;let s="",i=!1;return a;function a(f){return(f===72||f===104)&&jm.call(r,r.previous)&&!Hu(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),s+=String.fromCodePoint(f),e.consume(f),o):n(f)}function o(f){if(wt(f)&&s.length<5)return s+=String.fromCodePoint(f),e.consume(f),o;if(f===58){const h=s.toLowerCase();if(h==="http"||h==="https")return e.consume(f),u}return n(f)}function u(f){return f===47?(e.consume(f),i?l:(i=!0,u)):n(f)}function l(f){return f===null||ws(f)||nt(f)||Kn(f)||Gs(f)?n(f):e.attempt(Mm,e.attempt(Pm,c),n)(f)}function c(f){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(f)}}function bk(e,t,n){let r=0;return s;function s(a){return(a===87||a===119)&&r<3?(r++,e.consume(a),s):a===46&&r===3?(e.consume(a),i):n(a)}function i(a){return a===null?n(a):t(a)}}function yk(e,t,n){let r,s,i;return a;function a(l){return l===46||l===95?e.check(Dm,u,o)(l):l===null||nt(l)||Kn(l)||l!==45&&Gs(l)?u(l):(i=!0,e.consume(l),a)}function o(l){return l===95?r=!0:(s=r,r=void 0),e.consume(l),a}function u(l){return s||r||!i?n(l):t(l)}}function Ek(e,t){let n=0,r=0;return s;function s(a){return a===40?(n++,e.consume(a),s):a===41&&r<n?i(a):a===33||a===34||a===38||a===39||a===41||a===42||a===44||a===46||a===58||a===59||a===60||a===63||a===93||a===95||a===126?e.check(Dm,t,i)(a):a===null||nt(a)||Kn(a)?t(a):(e.consume(a),s)}function i(a){return a===41&&r++,e.consume(a),s}}function Tk(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),i):o===93?(e.consume(o),s):o===60||o===null||nt(o)||Kn(o)?t(o):n(o)}function s(o){return o===null||o===40||o===91||nt(o)||Kn(o)?t(o):r(o)}function i(o){return wt(o)?a(o):n(o)}function a(o){return o===59?(e.consume(o),r):wt(o)?(e.consume(o),a):n(o)}}function vk(e,t,n){return r;function r(i){return e.consume(i),s}function s(i){return Tt(i)?n(i):t(i)}}function Bm(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||nt(e)}function jm(e){return!wt(e)}function Hm(e){return!(e===47||Mo(e))}function Mo(e){return e===43||e===45||e===46||e===95||Tt(e)}function Hu(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const kk={tokenize:Rk,partial:!0};function wk(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:_k,continuation:{tokenize:Ik},exit:Nk}},text:{91:{name:"gfmFootnoteCall",tokenize:Ck},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Sk,resolveTo:Ak}}}}function Sk(e,t,n){const r=this;let s=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;s--;){const u=r.events[s][1];if(u.type==="labelImage"){a=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return o;function o(u){if(!a||!a._balanced)return n(u);const l=Yt(r.sliceSerialize({start:a.end,end:r.now()}));return l.codePointAt(0)!==94||!i.includes(l.slice(1))?n(u):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),t(u))}}function Ak(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},o=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...o),e}function Ck(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i=0,a;return o;function o(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),u}function u(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",l)}function l(f){if(i>999||f===93&&!a||f===null||f===91||nt(f))return n(f);if(f===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return s.includes(Yt(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return nt(f)||(a=!0),i++,e.consume(f),f===92?c:l}function c(f){return f===91||f===92||f===93?(e.consume(f),i++,l):l(f)}}function _k(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let i,a=0,o;return u;function u(m){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),l}function l(m){return m===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",c):n(m)}function c(m){if(a>999||m===93&&!o||m===null||m===91||nt(m))return n(m);if(m===93){e.exit("chunkString");const p=e.exit("gfmFootnoteDefinitionLabelString");return i=Yt(r.sliceSerialize(p)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(m),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return nt(m)||(o=!0),a++,e.consume(m),m===92?f:c}function f(m){return m===91||m===92||m===93?(e.consume(m),a++,c):c(m)}function h(m){return m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),s.includes(i)||s.push(i),qe(e,d,"gfmFootnoteDefinitionWhitespace")):n(m)}function d(m){return t(m)}}function Ik(e,t,n){return e.check(Ai,t,e.attempt(kk,t,n))}function Nk(e){e.exit("gfmFootnoteDefinition")}function Rk(e,t,n){const r=this;return qe(e,s,"gfmFootnoteDefinitionIndent",5);function s(i){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):n(i)}}function Lk(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:i,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(a,o){let u=-1;for(;++u<a.length;)if(a[u][0]==="enter"&&a[u][1].type==="strikethroughSequenceTemporary"&&a[u][1]._close){let l=u;for(;l--;)if(a[l][0]==="exit"&&a[l][1].type==="strikethroughSequenceTemporary"&&a[l][1]._open&&a[u][1].end.offset-a[u][1].start.offset===a[l][1].end.offset-a[l][1].start.offset){a[u][1].type="strikethroughSequence",a[l][1].type="strikethroughSequence";const c={type:"strikethrough",start:Object.assign({},a[l][1].start),end:Object.assign({},a[u][1].end)},f={type:"strikethroughText",start:Object.assign({},a[l][1].end),end:Object.assign({},a[u][1].start)},h=[["enter",c,o],["enter",a[l][1],o],["exit",a[l][1],o],["enter",f,o]],d=o.parser.constructs.insideSpan.null;d&&Pt(h,h.length,0,Ks(d,a.slice(l+1,u),o)),Pt(h,h.length,0,[["exit",f,o],["enter",a[u][1],o],["exit",a[u][1],o],["exit",c,o]]),Pt(a,l-1,u-l+3,h),u=l+h.length-2;break}}for(u=-1;++u<a.length;)a[u][1].type==="strikethroughSequenceTemporary"&&(a[u][1].type="data");return a}function i(a,o,u){const l=this.previous,c=this.events;let f=0;return h;function h(m){return l===126&&c[c.length-1][1].type!=="characterEscape"?u(m):(a.enter("strikethroughSequenceTemporary"),d(m))}function d(m){const p=Tr(l);if(m===126)return f>1?u(m):(a.consume(m),f++,d);if(f<2&&!n)return u(m);const g=a.exit("strikethroughSequenceTemporary"),y=Tr(m);return g._open=!y||y===2&&!!p,g._close=!p||p===2&&!!y,o(m)}}}class Mk{constructor(){this.map=[]}add(t,n,r){Pk(this,t,n,r)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const i of s)t.push(i);s=r.pop()}this.map.length=0}}function Pk(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s<e.map.length;){if(e.map[s][0]===t){e.map[s][1]+=n,e.map[s][2].push(...r);return}s+=1}e.map.push([t,n,r])}}function Dk(e,t){let n=!1;const r=[];for(;t<e.length;){const s=e[t];if(n){if(s[0]==="enter")s[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(s[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const i=r.length-1;r[i]=r[i]==="left"?"center":"right"}}else if(s[1].type==="tableDelimiterRow")break}else s[0]==="enter"&&s[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function Ok(){return{flow:{null:{name:"table",tokenize:Fk,resolveAll:Bk}}}}function Fk(e,t,n){const r=this;let s=0,i=0,a;return o;function o(S){let M=r.events.length-1;for(;M>-1;){const P=r.events[M][1].type;if(P==="lineEnding"||P==="linePrefix")M--;else break}const N=M>-1?r.events[M][1].type:null,j=N==="tableHead"||N==="tableRow"?k:u;return j===k&&r.parser.lazy[r.now().line]?n(S):j(S)}function u(S){return e.enter("tableHead"),e.enter("tableRow"),l(S)}function l(S){return S===124||(a=!0,i+=1),c(S)}function c(S){return S===null?n(S):Ae(S)?i>1?(i=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),d):n(S):Ue(S)?qe(e,c,"whitespace")(S):(i+=1,a&&(a=!1,s+=1),S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),a=!0,c):(e.enter("data"),f(S)))}function f(S){return S===null||S===124||nt(S)?(e.exit("data"),c(S)):(e.consume(S),S===92?h:f)}function h(S){return S===92||S===124?(e.consume(S),f):f(S)}function d(S){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(S):(e.enter("tableDelimiterRow"),a=!1,Ue(S)?qe(e,m,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):m(S))}function m(S){return S===45||S===58?g(S):S===124?(a=!0,e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),p):E(S)}function p(S){return Ue(S)?qe(e,g,"whitespace")(S):g(S)}function g(S){return S===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),y):S===45?(i+=1,y(S)):S===null||Ae(S)?C(S):E(S)}function y(S){return S===45?(e.enter("tableDelimiterFiller"),v(S)):E(S)}function v(S){return S===45?(e.consume(S),v):S===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),T):(e.exit("tableDelimiterFiller"),T(S))}function T(S){return Ue(S)?qe(e,C,"whitespace")(S):C(S)}function C(S){return S===124?m(S):S===null||Ae(S)?!a||s!==i?E(S):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(S)):E(S)}function E(S){return n(S)}function k(S){return e.enter("tableRow"),_(S)}function _(S){return S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),_):S===null||Ae(S)?(e.exit("tableRow"),t(S)):Ue(S)?qe(e,_,"whitespace")(S):(e.enter("data"),A(S))}function A(S){return S===null||S===124||nt(S)?(e.exit("data"),_(S)):(e.consume(S),S===92?I:A)}function I(S){return S===92||S===124?(e.consume(S),A):A(S)}}function Bk(e,t){let n=-1,r=!0,s=0,i=[0,0,0,0],a=[0,0,0,0],o=!1,u=0,l,c,f;const h=new Mk;for(;++n<e.length;){const d=e[n],m=d[1];d[0]==="enter"?m.type==="tableHead"?(o=!1,u!==0&&(Vc(h,t,u,l,c),c=void 0,u=0),l={type:"table",start:Object.assign({},m.start),end:Object.assign({},m.end)},h.add(n,0,[["enter",l,t]])):m.type==="tableRow"||m.type==="tableDelimiterRow"?(r=!0,f=void 0,i=[0,0,0,0],a=[0,n+1,0,0],o&&(o=!1,c={type:"tableBody",start:Object.assign({},m.start),end:Object.assign({},m.end)},h.add(n,0,[["enter",c,t]])),s=m.type==="tableDelimiterRow"?2:c?3:1):s&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")?(r=!1,a[2]===0&&(i[1]!==0&&(a[0]=a[1],f=Gi(h,t,i,s,void 0,f),i=[0,0,0,0]),a[2]=n)):m.type==="tableCellDivider"&&(r?r=!1:(i[1]!==0&&(a[0]=a[1],f=Gi(h,t,i,s,void 0,f)),i=a,a=[i[1],n,0,0])):m.type==="tableHead"?(o=!0,u=n):m.type==="tableRow"||m.type==="tableDelimiterRow"?(u=n,i[1]!==0?(a[0]=a[1],f=Gi(h,t,i,s,n,f)):a[1]!==0&&(f=Gi(h,t,a,s,n,f)),s=0):s&&(m.type==="data"||m.type==="tableDelimiterMarker"||m.type==="tableDelimiterFiller")&&(a[3]=n)}for(u!==0&&Vc(h,t,u,l,c),h.consume(t.events),n=-1;++n<t.events.length;){const d=t.events[n];d[0]==="enter"&&d[1].type==="table"&&(d[1]._align=Dk(t.events,n))}return e}function Gi(e,t,n,r,s,i){const a=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",o="tableContent";n[0]!==0&&(i.end=Object.assign({},fr(t.events,n[0])),e.add(n[0],0,[["exit",i,t]]));const u=fr(t.events,n[1]);if(i={type:a,start:Object.assign({},u),end:Object.assign({},u)},e.add(n[1],0,[["enter",i,t]]),n[2]!==0){const l=fr(t.events,n[2]),c=fr(t.events,n[3]),f={type:o,start:Object.assign({},l),end:Object.assign({},c)};if(e.add(n[2],0,[["enter",f,t]]),r!==2){const h=t.events[n[2]],d=t.events[n[3]];if(h[1].end=Object.assign({},d[1].end),h[1].type="chunkText",h[1].contentType="text",n[3]>n[2]+1){const m=n[2]+1,p=n[3]-n[2]-1;e.add(m,p,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return s!==void 0&&(i.end=Object.assign({},fr(t.events,s)),e.add(s,0,[["exit",i,t]]),i=void 0),i}function Vc(e,t,n,r,s){const i=[],a=fr(t.events,n);s&&(s.end=Object.assign({},a),i.push(["exit",s,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function fr(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const jk={name:"tasklistCheck",tokenize:Uk};function Hk(){return{text:{91:jk}}}function Uk(e,t,n){const r=this;return s;function s(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(u):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),i)}function i(u){return nt(u)?(e.enter("taskListCheckValueUnchecked"),e.consume(u),e.exit("taskListCheckValueUnchecked"),a):u===88||u===120?(e.enter("taskListCheckValueChecked"),e.consume(u),e.exit("taskListCheckValueChecked"),a):n(u)}function a(u){return u===93?(e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),o):n(u)}function o(u){return Ae(u)?t(u):Ue(u)?e.check({tokenize:zk},t,n)(u):n(u)}}function zk(e,t,n){return qe(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function Vk(e){return Gh([mk(),wk(),Lk(e),Ok(),Hk()])}const qk={};function Um(e){const t=this,n=e||qk,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),i=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(Vk(n)),i.push(ck()),a.push(dk(n))}const qc=/[#.]/g;function $k(e,t){const n=e||"",r={};let s=0,i,a;for(;s<n.length;){qc.lastIndex=s;const o=qc.exec(n),u=n.slice(s,o?o.index:n.length);u&&(i?i==="#"?r.id=u:Array.isArray(r.className)?r.className.push(u):r.className=[u]:a=u,s+=u.length),o&&(i=o[0],s++)}return{type:"element",tagName:a||t||"div",properties:r,children:[]}}function zm(e,t,n){const r=n?Kk(n):void 0;function s(i,a,...o){let u;if(i==null){u={type:"root",children:[]};const l=a;o.unshift(l)}else{u=$k(i,t);const l=u.tagName.toLowerCase(),c=r?r.get(l):void 0;if(u.tagName=c||l,Wk(a))o.unshift(a);else for(const[f,h]of Object.entries(a))Yk(e,u.properties,f,h)}for(const l of o)Po(u.children,l);return u.type==="element"&&u.tagName==="template"&&(u.content={type:"root",children:u.children},u.children=[]),u}return s}function Wk(e){if(e===null||typeof e!="object"||Array.isArray(e))return!0;if(typeof e.type!="string")return!1;const t=e,n=Object.keys(e);for(const r of n){const s=t[r];if(s&&typeof s=="object"){if(!Array.isArray(s))return!0;const i=s;for(const a of i)if(typeof a!="number"&&typeof a!="string")return!0}}return!!("children"in e&&Array.isArray(e.children))}function Yk(e,t,n,r){const s=Ws(e,n);let i;if(r!=null){if(typeof r=="number"){if(Number.isNaN(r))return;i=r}else typeof r=="boolean"?i=r:typeof r=="string"?s.spaceSeparated?i=rc(r):s.commaSeparated?i=Zl(r):s.commaOrSpaceSeparated?i=rc(Zl(r).join(" ")):i=$c(s,s.property,r):Array.isArray(r)?i=[...r]:i=s.property==="style"?Gk(r):String(r);if(Array.isArray(i)){const a=[];for(const o of i)a.push($c(s,s.property,o));i=a}s.property==="className"&&Array.isArray(t.className)&&(i=t.className.concat(i)),t[s.property]=i}}function Po(e,t){if(t!=null)if(typeof t=="number"||typeof t=="string")e.push({type:"text",value:String(t)});else if(Array.isArray(t))for(const n of t)Po(e,n);else if(typeof t=="object"&&"type"in t)t.type==="root"?Po(e,t.children):e.push(t);else throw new Error("Expected node, nodes, or string, got `"+t+"`")}function $c(e,t,n){if(typeof n=="string"){if(e.number&&n&&!Number.isNaN(Number(n)))return Number(n);if((e.boolean||e.overloadedBoolean)&&(n===""||pi(n)===pi(t)))return!0}return n}function Gk(e){const t=[];for(const[n,r]of Object.entries(e))t.push([n,r].join(": "));return t.join("; ")}function Kk(e){const t=new Map;for(const n of e)t.set(n.toLowerCase(),n);return t}const Xk=["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","solidColor","textArea","textPath"],Qk=zm(Si,"div"),Zk=zm(Sn,"g",Xk);function Jk(e){const t=String(e),n=[];return{toOffset:s,toPoint:r};function r(i){if(typeof i=="number"&&i>-1&&i<=t.length){let a=0;for(;;){let o=n[a];if(o===void 0){const u=Wc(t,n[a-1]);o=u===-1?t.length+1:u+1,n[a]=o}if(o>i)return{line:a+1,column:i-(a>0?n[a-1]:0)+1,offset:i};a++}}}function s(i){if(i&&typeof i.line=="number"&&typeof i.column=="number"&&!Number.isNaN(i.line)&&!Number.isNaN(i.column)){for(;n.length<i.line;){const o=n[n.length-1],u=Wc(t,o),l=u===-1?t.length+1:u+1;if(o===l)break;n.push(l)}const a=(i.line>1?n[i.line-2]:0)+i.column-1;if(a<n[i.line-1])return a}}}function Wc(e,t){const n=e.indexOf("\r",t),r=e.indexOf(`
441
- `,t);return r===-1?n:n===-1||n+1===r?r:n<r?n:r}const jn={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Vm={}.hasOwnProperty,ew=Object.prototype;function tw(e,t){const n=t||{};return Uu({file:n.file||void 0,location:!1,schema:n.space==="svg"?Sn:Si,verbose:n.verbose||!1},e)}function Uu(e,t){let n;switch(t.nodeName){case"#comment":{const r=t;return n={type:"comment",value:r.data},us(e,r,n),n}case"#document":case"#document-fragment":{const r=t,s="mode"in r?r.mode==="quirks"||r.mode==="limited-quirks":!1;if(n={type:"root",children:qm(e,t.childNodes),data:{quirksMode:s}},e.file&&e.location){const i=String(e.file),a=Jk(i),o=a.toPoint(0),u=a.toPoint(i.length);n.position={start:o,end:u}}return n}case"#documentType":{const r=t;return n={type:"doctype"},us(e,r,n),n}case"#text":{const r=t;return n={type:"text",value:r.value},us(e,r,n),n}default:return n=nw(e,t),n}}function qm(e,t){let n=-1;const r=[];for(;++n<t.length;){const s=Uu(e,t[n]);r.push(s)}return r}function nw(e,t){const n=e.schema;e.schema=t.namespaceURI===jn.svg?Sn:Si;let r=-1;const s={};for(;++r<t.attrs.length;){const o=t.attrs[r],u=(o.prefix?o.prefix+":":"")+o.name;Vm.call(ew,u)||(s[u]=o.value)}const a=(e.schema.space==="svg"?Zk:Qk)(t.tagName,s,qm(e,t.childNodes));if(us(e,t,a),a.tagName==="template"){const o=t,u=o.sourceCodeLocation,l=u&&u.startTag&&mr(u.startTag),c=u&&u.endTag&&mr(u.endTag),f=Uu(e,o.content);l&&c&&e.file&&(f.position={start:l.end,end:c.start}),a.content=f}return e.schema=n,a}function us(e,t,n){if("sourceCodeLocation"in t&&t.sourceCodeLocation&&e.file){const r=rw(e,n,t.sourceCodeLocation);r&&(e.location=!0,n.position=r)}}function rw(e,t,n){const r=mr(n);if(t.type==="element"){const s=t.children[t.children.length-1];if(r&&!n.endTag&&s&&s.position&&s.position.end&&(r.end=Object.assign({},s.position.end)),e.verbose){const i={};let a;if(n.attrs)for(a in n.attrs)Vm.call(n.attrs,a)&&(i[Ws(e.schema,a).property]=mr(n.attrs[a]));n.startTag;const o=mr(n.startTag),u=n.endTag?mr(n.endTag):void 0,l={opening:o};u&&(l.closing=u),l.properties=i,t.data={position:l}}}return r}function mr(e){const t=Yc({line:e.startLine,column:e.startCol,offset:e.startOffset}),n=Yc({line:e.endLine,column:e.endCol,offset:e.endOffset});return t||n?{start:t,end:n}:void 0}function Yc(e){return e.line&&e.column?e:void 0}const iw={},sw={}.hasOwnProperty,$m=Tm("type",{handlers:{root:ow,element:fw,text:cw,comment:dw,doctype:lw}});function aw(e,t){const r=(t||iw).space;return $m(e,r==="svg"?Sn:Si)}function ow(e,t){const n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=zu(e.children,n,t),Cr(e,n),n}function uw(e,t){const n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=zu(e.children,n,t),Cr(e,n),n}function lw(e){const t={nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:null};return Cr(e,t),t}function cw(e){const t={nodeName:"#text",value:e.value,parentNode:null};return Cr(e,t),t}function dw(e){const t={nodeName:"#comment",data:e.value,parentNode:null};return Cr(e,t),t}function fw(e,t){const n=t;let r=n;e.type==="element"&&e.tagName.toLowerCase()==="svg"&&n.space==="html"&&(r=Sn);const s=[];let i;if(e.properties){for(i in e.properties)if(i!=="children"&&sw.call(e.properties,i)){const u=hw(r,i,e.properties[i]);u&&s.push(u)}}const a=r.space,o={nodeName:e.tagName,tagName:e.tagName,attrs:s,namespaceURI:jn[a],childNodes:[],parentNode:null};return o.childNodes=zu(e.children,o,r),Cr(e,o),e.tagName==="template"&&e.content&&(o.content=uw(e.content,r)),o}function hw(e,t,n){const r=Ws(e,t);if(n===!1||n===null||n===void 0||typeof n=="number"&&Number.isNaN(n)||!n&&r.boolean)return;Array.isArray(n)&&(n=r.commaSeparated?Lh(n):Hh(n));const s={name:r.attribute,value:n===!0?"":String(n)};if(r.space&&r.space!=="html"&&r.space!=="svg"){const i=s.name.indexOf(":");i<0?s.prefix="":(s.name=s.name.slice(i+1),s.prefix=r.attribute.slice(0,i)),s.namespace=jn[r.space]}return s}function zu(e,t,n){let r=-1;const s=[];if(e)for(;++r<e.length;){const i=$m(e[r],n);i.parentNode=t,s.push(i)}return s}function Cr(e,t){const n=e.position;n&&n.start&&n.end&&(n.start.offset,n.end.offset,t.sourceCodeLocation={startLine:n.start.line,startCol:n.start.column,startOffset:n.start.offset,endLine:n.end.line,endCol:n.end.column,endOffset:n.end.offset})}const mw=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"],pw=new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]),at="�";var O;(function(e){e[e.EOF=-1]="EOF",e[e.NULL=0]="NULL",e[e.TABULATION=9]="TABULATION",e[e.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",e[e.LINE_FEED=10]="LINE_FEED",e[e.FORM_FEED=12]="FORM_FEED",e[e.SPACE=32]="SPACE",e[e.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",e[e.QUOTATION_MARK=34]="QUOTATION_MARK",e[e.AMPERSAND=38]="AMPERSAND",e[e.APOSTROPHE=39]="APOSTROPHE",e[e.HYPHEN_MINUS=45]="HYPHEN_MINUS",e[e.SOLIDUS=47]="SOLIDUS",e[e.DIGIT_0=48]="DIGIT_0",e[e.DIGIT_9=57]="DIGIT_9",e[e.SEMICOLON=59]="SEMICOLON",e[e.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",e[e.EQUALS_SIGN=61]="EQUALS_SIGN",e[e.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",e[e.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",e[e.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",e[e.GRAVE_ACCENT=96]="GRAVE_ACCENT",e[e.LATIN_SMALL_A=97]="LATIN_SMALL_A",e[e.LATIN_SMALL_Z=122]="LATIN_SMALL_Z"})(O||(O={}));const _t={DASH_DASH:"--",CDATA_START:"[CDATA[",DOCTYPE:"doctype",SCRIPT:"script",PUBLIC:"public",SYSTEM:"system"};function Wm(e){return e>=55296&&e<=57343}function gw(e){return e>=56320&&e<=57343}function xw(e,t){return(e-55296)*1024+9216+t}function Ym(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function Gm(e){return e>=64976&&e<=65007||pw.has(e)}var Q;(function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(Q||(Q={}));const bw=65536;class yw{constructor(t){this.handler=t,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=bw,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(t,n){const{line:r,col:s,offset:i}=this,a=s+n,o=i+n;return{code:t,startLine:r,endLine:r,startCol:a,endCol:a,startOffset:o,endOffset:o}}_err(t){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(t,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(t){if(this.pos!==this.html.length-1){const n=this.html.charCodeAt(this.pos+1);if(gw(n))return this.pos++,this._addGap(),xw(t,n)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,O.EOF;return this._err(Q.surrogateInInputStream),t}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(t,n){this.html.length>0?this.html+=t:this.html=t,this.endOfChunkHit=!1,this.lastChunkWritten=n}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(t,n){if(this.pos+t.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(n)return this.html.startsWith(t,this.pos);for(let r=0;r<t.length;r++)if((this.html.charCodeAt(this.pos+r)|32)!==t.charCodeAt(r))return!1;return!0}peek(t){const n=this.pos+t;if(n>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,O.EOF;const r=this.html.charCodeAt(n);return r===O.CARRIAGE_RETURN?O.LINE_FEED:r}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,O.EOF;let t=this.html.charCodeAt(this.pos);return t===O.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,O.LINE_FEED):t===O.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,Wm(t)&&(t=this._processSurrogate(t)),this.handler.onParseError===null||t>31&&t<127||t===O.LINE_FEED||t===O.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t)}_checkForProblematicCharacters(t){Ym(t)?this._err(Q.controlCharacterInInputStream):Gm(t)&&this._err(Q.noncharacterInInputStream)}retreat(t){for(this.pos-=t;this.pos<this.lastGapPos;)this.lastGapPos=this.gapStack.pop(),this.pos--;this.isEol=!1}}var je;(function(e){e[e.CHARACTER=0]="CHARACTER",e[e.NULL_CHARACTER=1]="NULL_CHARACTER",e[e.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",e[e.START_TAG=3]="START_TAG",e[e.END_TAG=4]="END_TAG",e[e.COMMENT=5]="COMMENT",e[e.DOCTYPE=6]="DOCTYPE",e[e.EOF=7]="EOF",e[e.HIBERNATION=8]="HIBERNATION"})(je||(je={}));function Km(e,t){for(let n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null}const Ew=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),Tw=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function vw(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Tw.get(e))!==null&&t!==void 0?t:e}var xt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(xt||(xt={}));const kw=32;var yn;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(yn||(yn={}));function Do(e){return e>=xt.ZERO&&e<=xt.NINE}function ww(e){return e>=xt.UPPER_A&&e<=xt.UPPER_F||e>=xt.LOWER_A&&e<=xt.LOWER_F}function Sw(e){return e>=xt.UPPER_A&&e<=xt.UPPER_Z||e>=xt.LOWER_A&&e<=xt.LOWER_Z||Do(e)}function Aw(e){return e===xt.EQUALS||Sw(e)}var gt;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(gt||(gt={}));var dn;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(dn||(dn={}));class Cw{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=gt.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=dn.Strict}startEntity(t){this.decodeMode=t,this.state=gt.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case gt.EntityStart:return t.charCodeAt(n)===xt.NUM?(this.state=gt.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=gt.NamedEntity,this.stateNamedEntity(t,n));case gt.NumericStart:return this.stateNumericStart(t,n);case gt.NumericDecimal:return this.stateNumericDecimal(t,n);case gt.NumericHex:return this.stateNumericHex(t,n);case gt.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|kw)===xt.LOWER_X?(this.state=gt.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=gt.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,s){if(n!==r){const i=r-n;this.result=this.result*Math.pow(s,i)+Number.parseInt(t.substr(n,i),s),this.consumed+=i}}stateNumericHex(t,n){const r=n;for(;n<t.length;){const s=t.charCodeAt(n);if(Do(s)||ww(s))n+=1;else return this.addToNumericResult(t,r,n,16),this.emitNumericEntity(s,3)}return this.addToNumericResult(t,r,n,16),-1}stateNumericDecimal(t,n){const r=n;for(;n<t.length;){const s=t.charCodeAt(n);if(Do(s))n+=1;else return this.addToNumericResult(t,r,n,10),this.emitNumericEntity(s,2)}return this.addToNumericResult(t,r,n,10),-1}emitNumericEntity(t,n){var r;if(this.consumed<=n)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===xt.SEMI)this.consumed+=1;else if(this.decodeMode===dn.Strict)return 0;return this.emitCodePoint(vw(this.result),this.consumed),this.errors&&(t!==xt.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,n){const{decodeTree:r}=this;let s=r[this.treeIndex],i=(s&yn.VALUE_LENGTH)>>14;for(;n<t.length;n++,this.excess++){const a=t.charCodeAt(n);if(this.treeIndex=_w(r,s,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===dn.Attribute&&(i===0||Aw(a))?0:this.emitNotTerminatedNamedEntity();if(s=r[this.treeIndex],i=(s&yn.VALUE_LENGTH)>>14,i!==0){if(a===xt.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==dn.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,s=(r[n]&yn.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,s,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:s}=this;return this.emitCodePoint(n===1?s[t]&~yn.VALUE_LENGTH:s[t+1],r),n===3&&this.emitCodePoint(s[t+2],r),r}end(){var t;switch(this.state){case gt.NamedEntity:return this.result!==0&&(this.decodeMode!==dn.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case gt.NumericDecimal:return this.emitNumericEntity(0,2);case gt.NumericHex:return this.emitNumericEntity(0,3);case gt.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case gt.EntityStart:return 0}}}function _w(e,t,n,r){const s=(t&yn.BRANCH_LENGTH)>>7,i=t&yn.JUMP_TABLE;if(s===0)return i!==0&&r===i?n:-1;if(i){const u=r-i;return u<0||u>=s?-1:e[n+u]-1}let a=n,o=a+s-1;for(;a<=o;){const u=a+o>>>1,l=e[u];if(l<r)a=u+1;else if(l>r)o=u-1;else return e[u+s]}return-1}var ie;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"})(ie||(ie={}));var $n;(function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"})($n||($n={}));var Ht;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(Ht||(Ht={}));var Y;(function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SEARCH="search",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"})(Y||(Y={}));var b;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SEARCH=94]="SEARCH",e[e.SECTION=95]="SECTION",e[e.SELECT=96]="SELECT",e[e.SOURCE=97]="SOURCE",e[e.SMALL=98]="SMALL",e[e.SPAN=99]="SPAN",e[e.STRIKE=100]="STRIKE",e[e.STRONG=101]="STRONG",e[e.STYLE=102]="STYLE",e[e.SUB=103]="SUB",e[e.SUMMARY=104]="SUMMARY",e[e.SUP=105]="SUP",e[e.TABLE=106]="TABLE",e[e.TBODY=107]="TBODY",e[e.TEMPLATE=108]="TEMPLATE",e[e.TEXTAREA=109]="TEXTAREA",e[e.TFOOT=110]="TFOOT",e[e.TD=111]="TD",e[e.TH=112]="TH",e[e.THEAD=113]="THEAD",e[e.TITLE=114]="TITLE",e[e.TR=115]="TR",e[e.TRACK=116]="TRACK",e[e.TT=117]="TT",e[e.U=118]="U",e[e.UL=119]="UL",e[e.SVG=120]="SVG",e[e.VAR=121]="VAR",e[e.WBR=122]="WBR",e[e.XMP=123]="XMP"})(b||(b={}));const Iw=new Map([[Y.A,b.A],[Y.ADDRESS,b.ADDRESS],[Y.ANNOTATION_XML,b.ANNOTATION_XML],[Y.APPLET,b.APPLET],[Y.AREA,b.AREA],[Y.ARTICLE,b.ARTICLE],[Y.ASIDE,b.ASIDE],[Y.B,b.B],[Y.BASE,b.BASE],[Y.BASEFONT,b.BASEFONT],[Y.BGSOUND,b.BGSOUND],[Y.BIG,b.BIG],[Y.BLOCKQUOTE,b.BLOCKQUOTE],[Y.BODY,b.BODY],[Y.BR,b.BR],[Y.BUTTON,b.BUTTON],[Y.CAPTION,b.CAPTION],[Y.CENTER,b.CENTER],[Y.CODE,b.CODE],[Y.COL,b.COL],[Y.COLGROUP,b.COLGROUP],[Y.DD,b.DD],[Y.DESC,b.DESC],[Y.DETAILS,b.DETAILS],[Y.DIALOG,b.DIALOG],[Y.DIR,b.DIR],[Y.DIV,b.DIV],[Y.DL,b.DL],[Y.DT,b.DT],[Y.EM,b.EM],[Y.EMBED,b.EMBED],[Y.FIELDSET,b.FIELDSET],[Y.FIGCAPTION,b.FIGCAPTION],[Y.FIGURE,b.FIGURE],[Y.FONT,b.FONT],[Y.FOOTER,b.FOOTER],[Y.FOREIGN_OBJECT,b.FOREIGN_OBJECT],[Y.FORM,b.FORM],[Y.FRAME,b.FRAME],[Y.FRAMESET,b.FRAMESET],[Y.H1,b.H1],[Y.H2,b.H2],[Y.H3,b.H3],[Y.H4,b.H4],[Y.H5,b.H5],[Y.H6,b.H6],[Y.HEAD,b.HEAD],[Y.HEADER,b.HEADER],[Y.HGROUP,b.HGROUP],[Y.HR,b.HR],[Y.HTML,b.HTML],[Y.I,b.I],[Y.IMG,b.IMG],[Y.IMAGE,b.IMAGE],[Y.INPUT,b.INPUT],[Y.IFRAME,b.IFRAME],[Y.KEYGEN,b.KEYGEN],[Y.LABEL,b.LABEL],[Y.LI,b.LI],[Y.LINK,b.LINK],[Y.LISTING,b.LISTING],[Y.MAIN,b.MAIN],[Y.MALIGNMARK,b.MALIGNMARK],[Y.MARQUEE,b.MARQUEE],[Y.MATH,b.MATH],[Y.MENU,b.MENU],[Y.META,b.META],[Y.MGLYPH,b.MGLYPH],[Y.MI,b.MI],[Y.MO,b.MO],[Y.MN,b.MN],[Y.MS,b.MS],[Y.MTEXT,b.MTEXT],[Y.NAV,b.NAV],[Y.NOBR,b.NOBR],[Y.NOFRAMES,b.NOFRAMES],[Y.NOEMBED,b.NOEMBED],[Y.NOSCRIPT,b.NOSCRIPT],[Y.OBJECT,b.OBJECT],[Y.OL,b.OL],[Y.OPTGROUP,b.OPTGROUP],[Y.OPTION,b.OPTION],[Y.P,b.P],[Y.PARAM,b.PARAM],[Y.PLAINTEXT,b.PLAINTEXT],[Y.PRE,b.PRE],[Y.RB,b.RB],[Y.RP,b.RP],[Y.RT,b.RT],[Y.RTC,b.RTC],[Y.RUBY,b.RUBY],[Y.S,b.S],[Y.SCRIPT,b.SCRIPT],[Y.SEARCH,b.SEARCH],[Y.SECTION,b.SECTION],[Y.SELECT,b.SELECT],[Y.SOURCE,b.SOURCE],[Y.SMALL,b.SMALL],[Y.SPAN,b.SPAN],[Y.STRIKE,b.STRIKE],[Y.STRONG,b.STRONG],[Y.STYLE,b.STYLE],[Y.SUB,b.SUB],[Y.SUMMARY,b.SUMMARY],[Y.SUP,b.SUP],[Y.TABLE,b.TABLE],[Y.TBODY,b.TBODY],[Y.TEMPLATE,b.TEMPLATE],[Y.TEXTAREA,b.TEXTAREA],[Y.TFOOT,b.TFOOT],[Y.TD,b.TD],[Y.TH,b.TH],[Y.THEAD,b.THEAD],[Y.TITLE,b.TITLE],[Y.TR,b.TR],[Y.TRACK,b.TRACK],[Y.TT,b.TT],[Y.U,b.U],[Y.UL,b.UL],[Y.SVG,b.SVG],[Y.VAR,b.VAR],[Y.WBR,b.WBR],[Y.XMP,b.XMP]]);function _r(e){var t;return(t=Iw.get(e))!==null&&t!==void 0?t:b.UNKNOWN}const ae=b,Nw={[ie.HTML]:new Set([ae.ADDRESS,ae.APPLET,ae.AREA,ae.ARTICLE,ae.ASIDE,ae.BASE,ae.BASEFONT,ae.BGSOUND,ae.BLOCKQUOTE,ae.BODY,ae.BR,ae.BUTTON,ae.CAPTION,ae.CENTER,ae.COL,ae.COLGROUP,ae.DD,ae.DETAILS,ae.DIR,ae.DIV,ae.DL,ae.DT,ae.EMBED,ae.FIELDSET,ae.FIGCAPTION,ae.FIGURE,ae.FOOTER,ae.FORM,ae.FRAME,ae.FRAMESET,ae.H1,ae.H2,ae.H3,ae.H4,ae.H5,ae.H6,ae.HEAD,ae.HEADER,ae.HGROUP,ae.HR,ae.HTML,ae.IFRAME,ae.IMG,ae.INPUT,ae.LI,ae.LINK,ae.LISTING,ae.MAIN,ae.MARQUEE,ae.MENU,ae.META,ae.NAV,ae.NOEMBED,ae.NOFRAMES,ae.NOSCRIPT,ae.OBJECT,ae.OL,ae.P,ae.PARAM,ae.PLAINTEXT,ae.PRE,ae.SCRIPT,ae.SECTION,ae.SELECT,ae.SOURCE,ae.STYLE,ae.SUMMARY,ae.TABLE,ae.TBODY,ae.TD,ae.TEMPLATE,ae.TEXTAREA,ae.TFOOT,ae.TH,ae.THEAD,ae.TITLE,ae.TR,ae.TRACK,ae.UL,ae.WBR,ae.XMP]),[ie.MATHML]:new Set([ae.MI,ae.MO,ae.MN,ae.MS,ae.MTEXT,ae.ANNOTATION_XML]),[ie.SVG]:new Set([ae.TITLE,ae.FOREIGN_OBJECT,ae.DESC]),[ie.XLINK]:new Set,[ie.XML]:new Set,[ie.XMLNS]:new Set},Oo=new Set([ae.H1,ae.H2,ae.H3,ae.H4,ae.H5,ae.H6]);Y.STYLE,Y.SCRIPT,Y.XMP,Y.IFRAME,Y.NOEMBED,Y.NOFRAMES,Y.PLAINTEXT;var H;(function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(H||(H={}));const ft={DATA:H.DATA,RCDATA:H.RCDATA,RAWTEXT:H.RAWTEXT,SCRIPT_DATA:H.SCRIPT_DATA,PLAINTEXT:H.PLAINTEXT,CDATA_SECTION:H.CDATA_SECTION};function Rw(e){return e>=O.DIGIT_0&&e<=O.DIGIT_9}function Xr(e){return e>=O.LATIN_CAPITAL_A&&e<=O.LATIN_CAPITAL_Z}function Lw(e){return e>=O.LATIN_SMALL_A&&e<=O.LATIN_SMALL_Z}function pn(e){return Lw(e)||Xr(e)}function Gc(e){return pn(e)||Rw(e)}function Ki(e){return e+32}function Xm(e){return e===O.SPACE||e===O.LINE_FEED||e===O.TABULATION||e===O.FORM_FEED}function Kc(e){return Xm(e)||e===O.SOLIDUS||e===O.GREATER_THAN_SIGN}function Mw(e){return e===O.NULL?Q.nullCharacterReference:e>1114111?Q.characterReferenceOutsideUnicodeRange:Wm(e)?Q.surrogateCharacterReference:Gm(e)?Q.noncharacterCharacterReference:Ym(e)||e===O.CARRIAGE_RETURN?Q.controlCharacterReference:null}class Pw{constructor(t,n){this.options=t,this.handler=n,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=H.DATA,this.returnState=H.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new yw(n),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new Cw(Ew,(r,s)=>{this.preprocessor.pos=this.entityStartPos+s-1,this._flushCodePointConsumedAsCharacterReference(r)},n.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(Q.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:r=>{this._err(Q.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+r)},validateNumericCharacterReference:r=>{const s=Mw(r);s&&this._err(s,1)}}:void 0)}_err(t,n=0){var r,s;(s=(r=this.handler).onParseError)===null||s===void 0||s.call(r,this.preprocessor.getError(t,n))}getCurrentLocation(t){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-t,startOffset:this.preprocessor.offset-t,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this._callState(t)}this.inLoop=!1}}pause(){this.paused=!0}resume(t){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||t==null||t())}write(t,n,r){this.active=!0,this.preprocessor.write(t,n),this._runParsingLoop(),this.paused||r==null||r()}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(t){this.consumedAfterSnapshot+=t;for(let n=0;n<t;n++)this.preprocessor.advance()}_consumeSequenceIfMatch(t,n){return this.preprocessor.startsWith(t,n)?(this._advanceBy(t.length-1),!0):!1}_createStartTagToken(){this.currentToken={type:je.START_TAG,tagName:"",tagID:b.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(1)}}_createEndTagToken(){this.currentToken={type:je.END_TAG,tagName:"",tagID:b.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(2)}}_createCommentToken(t){this.currentToken={type:je.COMMENT,data:"",location:this.getCurrentLocation(t)}}_createDoctypeToken(t){this.currentToken={type:je.DOCTYPE,name:t,forceQuirks:!1,publicId:null,systemId:null,location:this.currentLocation}}_createCharacterToken(t,n){this.currentCharacterToken={type:t,chars:n,location:this.currentLocation}}_createAttr(t){this.currentAttr={name:t,value:""},this.currentLocation=this.getCurrentLocation(0)}_leaveAttrName(){var t,n;const r=this.currentToken;if(Km(r,this.currentAttr.name)===null){if(r.attrs.push(this.currentAttr),r.location&&this.currentLocation){const s=(t=(n=r.location).attrs)!==null&&t!==void 0?t:n.attrs=Object.create(null);s[this.currentAttr.name]=this.currentLocation,this._leaveAttrValue()}}else this._err(Q.duplicateAttribute)}_leaveAttrValue(){this.currentLocation&&(this.currentLocation.endLine=this.preprocessor.line,this.currentLocation.endCol=this.preprocessor.col,this.currentLocation.endOffset=this.preprocessor.offset)}prepareToken(t){this._emitCurrentCharacterToken(t.location),this.currentToken=null,t.location&&(t.location.endLine=this.preprocessor.line,t.location.endCol=this.preprocessor.col+1,t.location.endOffset=this.preprocessor.offset+1),this.currentLocation=this.getCurrentLocation(-1)}emitCurrentTagToken(){const t=this.currentToken;this.prepareToken(t),t.tagID=_r(t.tagName),t.type===je.START_TAG?(this.lastStartTagName=t.tagName,this.handler.onStartTag(t)):(t.attrs.length>0&&this._err(Q.endTagWithAttributes),t.selfClosing&&this._err(Q.endTagWithTrailingSolidus),this.handler.onEndTag(t)),this.preprocessor.dropParsedChunk()}emitCurrentComment(t){this.prepareToken(t),this.handler.onComment(t),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(t){this.prepareToken(t),this.handler.onDoctype(t),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(t){if(this.currentCharacterToken){switch(t&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=t.startLine,this.currentCharacterToken.location.endCol=t.startCol,this.currentCharacterToken.location.endOffset=t.startOffset),this.currentCharacterToken.type){case je.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case je.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case je.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const t=this.getCurrentLocation(0);t&&(t.endLine=t.startLine,t.endCol=t.startCol,t.endOffset=t.startOffset),this._emitCurrentCharacterToken(t),this.handler.onEof({type:je.EOF,location:t}),this.active=!1}_appendCharToCurrentCharacterToken(t,n){if(this.currentCharacterToken)if(this.currentCharacterToken.type===t){this.currentCharacterToken.chars+=n;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(t,n)}_emitCodePoint(t){const n=Xm(t)?je.WHITESPACE_CHARACTER:t===O.NULL?je.NULL_CHARACTER:je.CHARACTER;this._appendCharToCurrentCharacterToken(n,String.fromCodePoint(t))}_emitChars(t){this._appendCharToCurrentCharacterToken(je.CHARACTER,t)}_startCharacterReference(){this.returnState=this.state,this.state=H.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?dn.Attribute:dn.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===H.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===H.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===H.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(t){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(t):this._emitCodePoint(t)}_callState(t){switch(this.state){case H.DATA:{this._stateData(t);break}case H.RCDATA:{this._stateRcdata(t);break}case H.RAWTEXT:{this._stateRawtext(t);break}case H.SCRIPT_DATA:{this._stateScriptData(t);break}case H.PLAINTEXT:{this._statePlaintext(t);break}case H.TAG_OPEN:{this._stateTagOpen(t);break}case H.END_TAG_OPEN:{this._stateEndTagOpen(t);break}case H.TAG_NAME:{this._stateTagName(t);break}case H.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(t);break}case H.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(t);break}case H.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(t);break}case H.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(t);break}case H.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(t);break}case H.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(t);break}case H.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(t);break}case H.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(t);break}case H.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(t);break}case H.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(t);break}case H.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(t);break}case H.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(t);break}case H.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(t);break}case H.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(t);break}case H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(t);break}case H.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(t);break}case H.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(t);break}case H.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(t);break}case H.ATTRIBUTE_NAME:{this._stateAttributeName(t);break}case H.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(t);break}case H.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(t);break}case H.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(t);break}case H.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(t);break}case H.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(t);break}case H.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(t);break}case H.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(t);break}case H.BOGUS_COMMENT:{this._stateBogusComment(t);break}case H.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(t);break}case H.COMMENT_START:{this._stateCommentStart(t);break}case H.COMMENT_START_DASH:{this._stateCommentStartDash(t);break}case H.COMMENT:{this._stateComment(t);break}case H.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(t);break}case H.COMMENT_END_DASH:{this._stateCommentEndDash(t);break}case H.COMMENT_END:{this._stateCommentEnd(t);break}case H.COMMENT_END_BANG:{this._stateCommentEndBang(t);break}case H.DOCTYPE:{this._stateDoctype(t);break}case H.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(t);break}case H.DOCTYPE_NAME:{this._stateDoctypeName(t);break}case H.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(t);break}case H.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(t);break}case H.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(t);break}case H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(t);break}case H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(t);break}case H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(t);break}case H.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(t);break}case H.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(t);break}case H.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(t);break}case H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(t);break}case H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(t);break}case H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(t);break}case H.BOGUS_DOCTYPE:{this._stateBogusDoctype(t);break}case H.CDATA_SECTION:{this._stateCdataSection(t);break}case H.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(t);break}case H.CDATA_SECTION_END:{this._stateCdataSectionEnd(t);break}case H.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case H.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(t);break}default:throw new Error("Unknown state")}}_stateData(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.TAG_OPEN;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitCodePoint(t);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRcdata(t){switch(t){case O.AMPERSAND:{this._startCharacterReference();break}case O.LESS_THAN_SIGN:{this.state=H.RCDATA_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRawtext(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.RAWTEXT_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptData(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_statePlaintext(t){switch(t){case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateTagOpen(t){if(pn(t))this._createStartTagToken(),this.state=H.TAG_NAME,this._stateTagName(t);else switch(t){case O.EXCLAMATION_MARK:{this.state=H.MARKUP_DECLARATION_OPEN;break}case O.SOLIDUS:{this.state=H.END_TAG_OPEN;break}case O.QUESTION_MARK:{this._err(Q.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t);break}case O.EOF:{this._err(Q.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(Q.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=H.DATA,this._stateData(t)}}_stateEndTagOpen(t){if(pn(t))this._createEndTagToken(),this.state=H.TAG_NAME,this._stateTagName(t);else switch(t){case O.GREATER_THAN_SIGN:{this._err(Q.missingEndTagName),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken();break}default:this._err(Q.invalidFirstCharacterOfTagName),this._createCommentToken(2),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t)}}_stateTagName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.SOLIDUS:{this.state=H.SELF_CLOSING_START_TAG;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentTagToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.tagName+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:n.tagName+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateRcdataLessThanSign(t){t===O.SOLIDUS?this.state=H.RCDATA_END_TAG_OPEN:(this._emitChars("<"),this.state=H.RCDATA,this._stateRcdata(t))}_stateRcdataEndTagOpen(t){pn(t)?(this.state=H.RCDATA_END_TAG_NAME,this._stateRcdataEndTagName(t)):(this._emitChars("</"),this.state=H.RCDATA,this._stateRcdata(t))}handleSpecialEndTag(t){if(!this.preprocessor.startsWith(this.lastStartTagName,!1))return!this._ensureHibernation();this._createEndTagToken();const n=this.currentToken;switch(n.tagName=this.lastStartTagName,this.preprocessor.peek(this.lastStartTagName.length)){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:return this._advanceBy(this.lastStartTagName.length),this.state=H.BEFORE_ATTRIBUTE_NAME,!1;case O.SOLIDUS:return this._advanceBy(this.lastStartTagName.length),this.state=H.SELF_CLOSING_START_TAG,!1;case O.GREATER_THAN_SIGN:return this._advanceBy(this.lastStartTagName.length),this.emitCurrentTagToken(),this.state=H.DATA,!1;default:return!this._ensureHibernation()}}_stateRcdataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.RCDATA,this._stateRcdata(t))}_stateRawtextLessThanSign(t){t===O.SOLIDUS?this.state=H.RAWTEXT_END_TAG_OPEN:(this._emitChars("<"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagOpen(t){pn(t)?(this.state=H.RAWTEXT_END_TAG_NAME,this._stateRawtextEndTagName(t)):(this._emitChars("</"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateScriptDataLessThanSign(t){switch(t){case O.SOLIDUS:{this.state=H.SCRIPT_DATA_END_TAG_OPEN;break}case O.EXCLAMATION_MARK:{this.state=H.SCRIPT_DATA_ESCAPE_START,this._emitChars("<!");break}default:this._emitChars("<"),this.state=H.SCRIPT_DATA,this._stateScriptData(t)}}_stateScriptDataEndTagOpen(t){pn(t)?(this.state=H.SCRIPT_DATA_END_TAG_NAME,this._stateScriptDataEndTagName(t)):(this._emitChars("</"),this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStart(t){t===O.HYPHEN_MINUS?(this.state=H.SCRIPT_DATA_ESCAPE_START_DASH,this._emitChars("-")):(this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStartDash(t){t===O.HYPHEN_MINUS?(this.state=H.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-")):(this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscaped(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_ESCAPED_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataEscapedDash(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedDashDash(t){switch(t){case O.HYPHEN_MINUS:{this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.GREATER_THAN_SIGN:{this.state=H.SCRIPT_DATA,this._emitChars(">");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedLessThanSign(t){t===O.SOLIDUS?this.state=H.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:pn(t)?(this._emitChars("<"),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(t)):(this._emitChars("<"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagOpen(t){pn(t)?(this.state=H.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(t)):(this._emitChars("</"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscapeStart(t){if(this.preprocessor.startsWith(_t.SCRIPT,!1)&&Kc(this.preprocessor.peek(_t.SCRIPT.length))){this._emitCodePoint(t);for(let n=0;n<_t.SCRIPT.length;n++)this._emitCodePoint(this._consume());this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED}else this._ensureHibernation()||(this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscaped(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDash(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDashDash(t){switch(t){case O.HYPHEN_MINUS:{this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.GREATER_THAN_SIGN:{this.state=H.SCRIPT_DATA,this._emitChars(">");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedLessThanSign(t){t===O.SOLIDUS?(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateScriptDataDoubleEscapeEnd(t){if(this.preprocessor.startsWith(_t.SCRIPT,!1)&&Kc(this.preprocessor.peek(_t.SCRIPT.length))){this._emitCodePoint(t);for(let n=0;n<_t.SCRIPT.length;n++)this._emitCodePoint(this._consume());this.state=H.SCRIPT_DATA_ESCAPED}else this._ensureHibernation()||(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateBeforeAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.SOLIDUS:case O.GREATER_THAN_SIGN:case O.EOF:{this.state=H.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case O.EQUALS_SIGN:{this._err(Q.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=H.ATTRIBUTE_NAME;break}default:this._createAttr(""),this.state=H.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:case O.SOLIDUS:case O.GREATER_THAN_SIGN:case O.EOF:{this._leaveAttrName(),this.state=H.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case O.EQUALS_SIGN:{this._leaveAttrName(),this.state=H.BEFORE_ATTRIBUTE_VALUE;break}case O.QUOTATION_MARK:case O.APOSTROPHE:case O.LESS_THAN_SIGN:{this._err(Q.unexpectedCharacterInAttributeName),this.currentAttr.name+=String.fromCodePoint(t);break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.name+=at;break}default:this.currentAttr.name+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateAfterAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.SOLIDUS:{this.state=H.SELF_CLOSING_START_TAG;break}case O.EQUALS_SIGN:{this.state=H.BEFORE_ATTRIBUTE_VALUE;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._createAttr(""),this.state=H.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateBeforeAttributeValue(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{this.state=H.ATTRIBUTE_VALUE_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this.state=H.ATTRIBUTE_VALUE_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingAttributeValue),this.state=H.DATA,this.emitCurrentTagToken();break}default:this.state=H.ATTRIBUTE_VALUE_UNQUOTED,this._stateAttributeValueUnquoted(t)}}_stateAttributeValueDoubleQuoted(t){switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueSingleQuoted(t){switch(t){case O.APOSTROPHE:{this.state=H.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueUnquoted(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this._leaveAttrValue(),this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=H.DATA,this.emitCurrentTagToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.QUOTATION_MARK:case O.APOSTROPHE:case O.LESS_THAN_SIGN:case O.EQUALS_SIGN:case O.GRAVE_ACCENT:{this._err(Q.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=String.fromCodePoint(t);break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAfterAttributeValueQuoted(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this._leaveAttrValue(),this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.SOLIDUS:{this._leaveAttrValue(),this.state=H.SELF_CLOSING_START_TAG;break}case O.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._err(Q.missingWhitespaceBetweenAttributes),this.state=H.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateSelfClosingStartTag(t){switch(t){case O.GREATER_THAN_SIGN:{const n=this.currentToken;n.selfClosing=!0,this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._err(Q.unexpectedSolidusInTag),this.state=H.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateBogusComment(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this.emitCurrentComment(n),this._emitEOFToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.data+=at;break}default:n.data+=String.fromCodePoint(t)}}_stateMarkupDeclarationOpen(t){this._consumeSequenceIfMatch(_t.DASH_DASH,!0)?(this._createCommentToken(_t.DASH_DASH.length+1),this.state=H.COMMENT_START):this._consumeSequenceIfMatch(_t.DOCTYPE,!1)?(this.currentLocation=this.getCurrentLocation(_t.DOCTYPE.length+1),this.state=H.DOCTYPE):this._consumeSequenceIfMatch(_t.CDATA_START,!0)?this.inForeignNode?this.state=H.CDATA_SECTION:(this._err(Q.cdataInHtmlContent),this._createCommentToken(_t.CDATA_START.length+1),this.currentToken.data="[CDATA[",this.state=H.BOGUS_COMMENT):this._ensureHibernation()||(this._err(Q.incorrectlyOpenedComment),this._createCommentToken(2),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t))}_stateCommentStart(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_START_DASH;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptClosingOfEmptyComment),this.state=H.DATA;const n=this.currentToken;this.emitCurrentComment(n);break}default:this.state=H.COMMENT,this._stateComment(t)}}_stateCommentStartDash(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptClosingOfEmptyComment),this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="-",this.state=H.COMMENT,this._stateComment(t)}}_stateComment(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END_DASH;break}case O.LESS_THAN_SIGN:{n.data+="<",this.state=H.COMMENT_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.data+=at;break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+=String.fromCodePoint(t)}}_stateCommentLessThanSign(t){const n=this.currentToken;switch(t){case O.EXCLAMATION_MARK:{n.data+="!",this.state=H.COMMENT_LESS_THAN_SIGN_BANG;break}case O.LESS_THAN_SIGN:{n.data+="<";break}default:this.state=H.COMMENT,this._stateComment(t)}}_stateCommentLessThanSignBang(t){t===O.HYPHEN_MINUS?this.state=H.COMMENT_LESS_THAN_SIGN_BANG_DASH:(this.state=H.COMMENT,this._stateComment(t))}_stateCommentLessThanSignBangDash(t){t===O.HYPHEN_MINUS?this.state=H.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:(this.state=H.COMMENT_END_DASH,this._stateCommentEndDash(t))}_stateCommentLessThanSignBangDashDash(t){t!==O.GREATER_THAN_SIGN&&t!==O.EOF&&this._err(Q.nestedComment),this.state=H.COMMENT_END,this._stateCommentEnd(t)}_stateCommentEndDash(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END;break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="-",this.state=H.COMMENT,this._stateComment(t)}}_stateCommentEnd(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentComment(n);break}case O.EXCLAMATION_MARK:{this.state=H.COMMENT_END_BANG;break}case O.HYPHEN_MINUS:{n.data+="-";break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="--",this.state=H.COMMENT,this._stateComment(t)}}_stateCommentEndBang(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{n.data+="--!",this.state=H.COMMENT_END_DASH;break}case O.GREATER_THAN_SIGN:{this._err(Q.incorrectlyClosedComment),this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="--!",this.state=H.COMMENT,this._stateComment(t)}}_stateDoctype(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this.state=H.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t);break}case O.EOF:{this._err(Q.eofInDoctype),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingWhitespaceBeforeDoctypeName),this.state=H.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t)}}_stateBeforeDoctypeName(t){if(Xr(t))this._createDoctypeToken(String.fromCharCode(Ki(t))),this.state=H.DOCTYPE_NAME;else switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.NULL:{this._err(Q.unexpectedNullCharacter),this._createDoctypeToken(at),this.state=H.DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeName),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._createDoctypeToken(String.fromCodePoint(t)),this.state=H.DOCTYPE_NAME}}_stateDoctypeName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.AFTER_DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.name+=at;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.name+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateAfterDoctypeName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._consumeSequenceIfMatch(_t.PUBLIC,!1)?this.state=H.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._consumeSequenceIfMatch(_t.SYSTEM,!1)?this.state=H.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._ensureHibernation()||(this._err(Q.invalidCharacterSequenceAfterDoctypeName),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t))}}_stateAfterDoctypePublicKeyword(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceAfterDoctypePublicKeyword),n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceAfterDoctypePublicKeyword),n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypePublicIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypePublicIdentifierDoubleQuoted(t){const n=this.currentToken;switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.publicId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypePublicIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.publicId+=String.fromCodePoint(t)}}_stateDoctypePublicIdentifierSingleQuoted(t){const n=this.currentToken;switch(t){case O.APOSTROPHE:{this.state=H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.publicId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypePublicIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.publicId+=String.fromCodePoint(t)}}_stateAfterDoctypePublicIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBetweenDoctypePublicAndSystemIdentifiers(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.QUOTATION_MARK:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateAfterDoctypeSystemKeyword(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceAfterDoctypeSystemKeyword),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceAfterDoctypeSystemKeyword),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypeSystemIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypeSystemIdentifierDoubleQuoted(t){const n=this.currentToken;switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.systemId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypeSystemIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.systemId+=String.fromCodePoint(t)}}_stateDoctypeSystemIdentifierSingleQuoted(t){const n=this.currentToken;switch(t){case O.APOSTROPHE:{this.state=H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.systemId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypeSystemIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.systemId+=String.fromCodePoint(t)}}_stateAfterDoctypeSystemIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.unexpectedCharacterAfterDoctypeSystemIdentifier),this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBogusDoctype(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.NULL:{this._err(Q.unexpectedNullCharacter);break}case O.EOF:{this.emitCurrentDoctype(n),this._emitEOFToken();break}}}_stateCdataSection(t){switch(t){case O.RIGHT_SQUARE_BRACKET:{this.state=H.CDATA_SECTION_BRACKET;break}case O.EOF:{this._err(Q.eofInCdata),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateCdataSectionBracket(t){t===O.RIGHT_SQUARE_BRACKET?this.state=H.CDATA_SECTION_END:(this._emitChars("]"),this.state=H.CDATA_SECTION,this._stateCdataSection(t))}_stateCdataSectionEnd(t){switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA;break}case O.RIGHT_SQUARE_BRACKET:{this._emitChars("]");break}default:this._emitChars("]]"),this.state=H.CDATA_SECTION,this._stateCdataSection(t)}}_stateCharacterReference(){let t=this.entityDecoder.write(this.preprocessor.html,this.preprocessor.pos);if(t<0)if(this.preprocessor.lastChunkWritten)t=this.entityDecoder.end();else{this.active=!1,this.preprocessor.pos=this.preprocessor.html.length-1,this.consumedAfterSnapshot=0,this.preprocessor.endOfChunkHit=!0;return}t===0?(this.preprocessor.pos=this.entityStartPos,this._flushCodePointConsumedAsCharacterReference(O.AMPERSAND),this.state=!this._isCharacterReferenceInAttribute()&&Gc(this.preprocessor.peek(1))?H.AMBIGUOUS_AMPERSAND:this.returnState):this.state=this.returnState}_stateAmbiguousAmpersand(t){Gc(t)?this._flushCodePointConsumedAsCharacterReference(t):(t===O.SEMICOLON&&this._err(Q.unknownNamedCharacterReference),this.state=this.returnState,this._callState(t))}}const Qm=new Set([b.DD,b.DT,b.LI,b.OPTGROUP,b.OPTION,b.P,b.RB,b.RP,b.RT,b.RTC]),Xc=new Set([...Qm,b.CAPTION,b.COLGROUP,b.TBODY,b.TD,b.TFOOT,b.TH,b.THEAD,b.TR]),Cs=new Set([b.APPLET,b.CAPTION,b.HTML,b.MARQUEE,b.OBJECT,b.TABLE,b.TD,b.TEMPLATE,b.TH]),Dw=new Set([...Cs,b.OL,b.UL]),Ow=new Set([...Cs,b.BUTTON]),Qc=new Set([b.ANNOTATION_XML,b.MI,b.MN,b.MO,b.MS,b.MTEXT]),Zc=new Set([b.DESC,b.FOREIGN_OBJECT,b.TITLE]),Fw=new Set([b.TR,b.TEMPLATE,b.HTML]),Bw=new Set([b.TBODY,b.TFOOT,b.THEAD,b.TEMPLATE,b.HTML]),jw=new Set([b.TABLE,b.TEMPLATE,b.HTML]),Hw=new Set([b.TD,b.TH]);class Uw{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(t,n,r){this.treeAdapter=n,this.handler=r,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=b.UNKNOWN,this.current=t}_indexOf(t){return this.items.lastIndexOf(t,this.stackTop)}_isInTemplate(){return this.currentTagId===b.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===ie.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(t,n){this.stackTop++,this.items[this.stackTop]=t,this.current=t,this.tagIDs[this.stackTop]=n,this.currentTagId=n,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(t,n,!0)}pop(){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!0)}replace(t,n){const r=this._indexOf(t);this.items[r]=n,r===this.stackTop&&(this.current=n)}insertAfter(t,n,r){const s=this._indexOf(t)+1;this.items.splice(s,0,n),this.tagIDs.splice(s,0,r),this.stackTop++,s===this.stackTop&&this._updateCurrentElement(),this.current&&this.currentTagId!==void 0&&this.handler.onItemPush(this.current,this.currentTagId,s===this.stackTop)}popUntilTagNamePopped(t){let n=this.stackTop+1;do n=this.tagIDs.lastIndexOf(t,n-1);while(n>0&&this.treeAdapter.getNamespaceURI(this.items[n])!==ie.HTML);this.shortenToLength(Math.max(n,0))}shortenToLength(t){for(;this.stackTop>=t;){const n=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(n,this.stackTop<t)}}popUntilElementPopped(t){const n=this._indexOf(t);this.shortenToLength(Math.max(n,0))}popUntilPopped(t,n){const r=this._indexOfTagNames(t,n);this.shortenToLength(Math.max(r,0))}popUntilNumberedHeaderPopped(){this.popUntilPopped(Oo,ie.HTML)}popUntilTableCellPopped(){this.popUntilPopped(Hw,ie.HTML)}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1)}_indexOfTagNames(t,n){for(let r=this.stackTop;r>=0;r--)if(t.has(this.tagIDs[r])&&this.treeAdapter.getNamespaceURI(this.items[r])===n)return r;return-1}clearBackTo(t,n){const r=this._indexOfTagNames(t,n);this.shortenToLength(r+1)}clearBackToTableContext(){this.clearBackTo(jw,ie.HTML)}clearBackToTableBodyContext(){this.clearBackTo(Bw,ie.HTML)}clearBackToTableRowContext(){this.clearBackTo(Fw,ie.HTML)}remove(t){const n=this._indexOf(t);n>=0&&(n===this.stackTop?this.pop():(this.items.splice(n,1),this.tagIDs.splice(n,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===b.BODY?this.items[1]:null}contains(t){return this._indexOf(t)>-1}getCommonAncestor(t){const n=this._indexOf(t)-1;return n>=0?this.items[n]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===b.HTML}hasInDynamicScope(t,n){for(let r=this.stackTop;r>=0;r--){const s=this.tagIDs[r];switch(this.treeAdapter.getNamespaceURI(this.items[r])){case ie.HTML:{if(s===t)return!0;if(n.has(s))return!1;break}case ie.SVG:{if(Zc.has(s))return!1;break}case ie.MATHML:{if(Qc.has(s))return!1;break}}}return!0}hasInScope(t){return this.hasInDynamicScope(t,Cs)}hasInListItemScope(t){return this.hasInDynamicScope(t,Dw)}hasInButtonScope(t){return this.hasInDynamicScope(t,Ow)}hasNumberedHeaderInScope(){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t];switch(this.treeAdapter.getNamespaceURI(this.items[t])){case ie.HTML:{if(Oo.has(n))return!0;if(Cs.has(n))return!1;break}case ie.SVG:{if(Zc.has(n))return!1;break}case ie.MATHML:{if(Qc.has(n))return!1;break}}}return!0}hasInTableScope(t){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===ie.HTML)switch(this.tagIDs[n]){case t:return!0;case b.TABLE:case b.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let t=this.stackTop;t>=0;t--)if(this.treeAdapter.getNamespaceURI(this.items[t])===ie.HTML)switch(this.tagIDs[t]){case b.TBODY:case b.THEAD:case b.TFOOT:return!0;case b.TABLE:case b.HTML:return!1}return!0}hasInSelectScope(t){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===ie.HTML)switch(this.tagIDs[n]){case t:return!0;case b.OPTION:case b.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;this.currentTagId!==void 0&&Qm.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;this.currentTagId!==void 0&&Xc.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(t){for(;this.currentTagId!==void 0&&this.currentTagId!==t&&Xc.has(this.currentTagId);)this.pop()}}const qa=3;var en;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(en||(en={}));const Jc={type:en.Marker};class zw{constructor(t){this.treeAdapter=t,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(t,n){const r=[],s=n.length,i=this.treeAdapter.getTagName(t),a=this.treeAdapter.getNamespaceURI(t);for(let o=0;o<this.entries.length;o++){const u=this.entries[o];if(u.type===en.Marker)break;const{element:l}=u;if(this.treeAdapter.getTagName(l)===i&&this.treeAdapter.getNamespaceURI(l)===a){const c=this.treeAdapter.getAttrList(l);c.length===s&&r.push({idx:o,attrs:c})}}return r}_ensureNoahArkCondition(t){if(this.entries.length<qa)return;const n=this.treeAdapter.getAttrList(t),r=this._getNoahArkConditionCandidates(t,n);if(r.length<qa)return;const s=new Map(n.map(a=>[a.name,a.value]));let i=0;for(let a=0;a<r.length;a++){const o=r[a];o.attrs.every(u=>s.get(u.name)===u.value)&&(i+=1,i>=qa&&this.entries.splice(o.idx,1))}}insertMarker(){this.entries.unshift(Jc)}pushElement(t,n){this._ensureNoahArkCondition(t),this.entries.unshift({type:en.Element,element:t,token:n})}insertElementAfterBookmark(t,n){const r=this.entries.indexOf(this.bookmark);this.entries.splice(r,0,{type:en.Element,element:t,token:n})}removeEntry(t){const n=this.entries.indexOf(t);n!==-1&&this.entries.splice(n,1)}clearToLastMarker(){const t=this.entries.indexOf(Jc);t===-1?this.entries.length=0:this.entries.splice(0,t+1)}getElementEntryInScopeWithTagName(t){const n=this.entries.find(r=>r.type===en.Marker||this.treeAdapter.getTagName(r.element)===t);return n&&n.type===en.Element?n:null}getElementEntry(t){return this.entries.find(n=>n.type===en.Element&&n.element===t)}}const gn={createDocument(){return{nodeName:"#document",mode:Ht.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},createCommentNode(e){return{nodeName:"#comment",data:e,parentNode:null}},createTextNode(e){return{nodeName:"#text",value:e,parentNode:null}},appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){const r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent(e){return e.content},setDocumentType(e,t,n,r){const s=e.childNodes.find(i=>i.nodeName==="#documentType");if(s)s.name=t,s.publicId=n,s.systemId=r;else{const i={nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null};gn.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode(e){return e.mode},detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){const n=e.childNodes[e.childNodes.length-1];if(gn.isTextNode(n)){n.value+=t;return}}gn.appendChild(e,gn.createTextNode(t))},insertTextBefore(e,t,n){const r=e.childNodes[e.childNodes.indexOf(n)-1];r&&gn.isTextNode(r)?r.value+=t:gn.insertBefore(e,gn.createTextNode(t),n)},adoptAttributes(e,t){const n=new Set(e.attrs.map(r=>r.name));for(let r=0;r<t.length;r++)n.has(t[r].name)||e.attrs.push(t[r])},getFirstChild(e){return e.childNodes[0]},getChildNodes(e){return e.childNodes},getParentNode(e){return e.parentNode},getAttrList(e){return e.attrs},getTagName(e){return e.tagName},getNamespaceURI(e){return e.namespaceURI},getTextNodeContent(e){return e.value},getCommentNodeContent(e){return e.data},getDocumentTypeNodeName(e){return e.name},getDocumentTypeNodePublicId(e){return e.publicId},getDocumentTypeNodeSystemId(e){return e.systemId},isTextNode(e){return e.nodeName==="#text"},isCommentNode(e){return e.nodeName==="#comment"},isDocumentTypeNode(e){return e.nodeName==="#documentType"},isElementNode(e){return Object.prototype.hasOwnProperty.call(e,"tagName")},setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation(e){return e.sourceCodeLocation},updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},Zm="html",Vw="about:legacy-compat",qw="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",Jm=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],$w=[...Jm,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],Ww=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),ep=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],Yw=[...ep,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function ed(e,t){return t.some(n=>e.startsWith(n))}function Gw(e){return e.name===Zm&&e.publicId===null&&(e.systemId===null||e.systemId===Vw)}function Kw(e){if(e.name!==Zm)return Ht.QUIRKS;const{systemId:t}=e;if(t&&t.toLowerCase()===qw)return Ht.QUIRKS;let{publicId:n}=e;if(n!==null){if(n=n.toLowerCase(),Ww.has(n))return Ht.QUIRKS;let r=t===null?$w:Jm;if(ed(n,r))return Ht.QUIRKS;if(r=t===null?ep:Yw,ed(n,r))return Ht.LIMITED_QUIRKS}return Ht.NO_QUIRKS}const td={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},Xw="definitionurl",Qw="definitionURL",Zw=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),Jw=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:ie.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:ie.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:ie.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:ie.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:ie.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:ie.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:ie.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:ie.XML}],["xml:space",{prefix:"xml",name:"space",namespace:ie.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:ie.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:ie.XMLNS}]]),eS=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),tS=new Set([b.B,b.BIG,b.BLOCKQUOTE,b.BODY,b.BR,b.CENTER,b.CODE,b.DD,b.DIV,b.DL,b.DT,b.EM,b.EMBED,b.H1,b.H2,b.H3,b.H4,b.H5,b.H6,b.HEAD,b.HR,b.I,b.IMG,b.LI,b.LISTING,b.MENU,b.META,b.NOBR,b.OL,b.P,b.PRE,b.RUBY,b.S,b.SMALL,b.SPAN,b.STRONG,b.STRIKE,b.SUB,b.SUP,b.TABLE,b.TT,b.U,b.UL,b.VAR]);function nS(e){const t=e.tagID;return t===b.FONT&&e.attrs.some(({name:r})=>r===$n.COLOR||r===$n.SIZE||r===$n.FACE)||tS.has(t)}function tp(e){for(let t=0;t<e.attrs.length;t++)if(e.attrs[t].name===Xw){e.attrs[t].name=Qw;break}}function np(e){for(let t=0;t<e.attrs.length;t++){const n=Zw.get(e.attrs[t].name);n!=null&&(e.attrs[t].name=n)}}function Vu(e){for(let t=0;t<e.attrs.length;t++){const n=Jw.get(e.attrs[t].name);n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}}function rS(e){const t=eS.get(e.tagName);t!=null&&(e.tagName=t,e.tagID=_r(e.tagName))}function iS(e,t){return t===ie.MATHML&&(e===b.MI||e===b.MO||e===b.MN||e===b.MS||e===b.MTEXT)}function sS(e,t,n){if(t===ie.MATHML&&e===b.ANNOTATION_XML){for(let r=0;r<n.length;r++)if(n[r].name===$n.ENCODING){const s=n[r].value.toLowerCase();return s===td.TEXT_HTML||s===td.APPLICATION_XML}}return t===ie.SVG&&(e===b.FOREIGN_OBJECT||e===b.DESC||e===b.TITLE)}function aS(e,t,n,r){return(!r||r===ie.HTML)&&sS(e,t,n)||(!r||r===ie.MATHML)&&iS(e,t)}const oS="hidden",uS=8,lS=3;var U;(function(e){e[e.INITIAL=0]="INITIAL",e[e.BEFORE_HTML=1]="BEFORE_HTML",e[e.BEFORE_HEAD=2]="BEFORE_HEAD",e[e.IN_HEAD=3]="IN_HEAD",e[e.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",e[e.AFTER_HEAD=5]="AFTER_HEAD",e[e.IN_BODY=6]="IN_BODY",e[e.TEXT=7]="TEXT",e[e.IN_TABLE=8]="IN_TABLE",e[e.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",e[e.IN_CAPTION=10]="IN_CAPTION",e[e.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",e[e.IN_TABLE_BODY=12]="IN_TABLE_BODY",e[e.IN_ROW=13]="IN_ROW",e[e.IN_CELL=14]="IN_CELL",e[e.IN_SELECT=15]="IN_SELECT",e[e.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",e[e.IN_TEMPLATE=17]="IN_TEMPLATE",e[e.AFTER_BODY=18]="AFTER_BODY",e[e.IN_FRAMESET=19]="IN_FRAMESET",e[e.AFTER_FRAMESET=20]="AFTER_FRAMESET",e[e.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",e[e.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET"})(U||(U={}));const cS={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},rp=new Set([b.TABLE,b.TBODY,b.TFOOT,b.THEAD,b.TR]),nd={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:gn,onParseError:null};class rd{constructor(t,n,r=null,s=null){this.fragmentContext=r,this.scriptHandler=s,this.currentToken=null,this.stopped=!1,this.insertionMode=U.INITIAL,this.originalInsertionMode=U.INITIAL,this.headElement=null,this.formElement=null,this.currentNotInHTML=!1,this.tmplInsertionModeStack=[],this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1,this.options={...nd,...t},this.treeAdapter=this.options.treeAdapter,this.onParseError=this.options.onParseError,this.onParseError&&(this.options.sourceCodeLocationInfo=!0),this.document=n??this.treeAdapter.createDocument(),this.tokenizer=new Pw(this.options,this),this.activeFormattingElements=new zw(this.treeAdapter),this.fragmentContextID=r?_r(this.treeAdapter.getTagName(r)):b.UNKNOWN,this._setContextModes(r??this.document,this.fragmentContextID),this.openElements=new Uw(this.document,this.treeAdapter,this)}static parse(t,n){const r=new this(n);return r.tokenizer.write(t,!0),r.document}static getFragmentParser(t,n){const r={...nd,...n};t??(t=r.treeAdapter.createElement(Y.TEMPLATE,ie.HTML,[]));const s=r.treeAdapter.createElement("documentmock",ie.HTML,[]),i=new this(r,s,t);return i.fragmentContextID===b.TEMPLATE&&i.tmplInsertionModeStack.unshift(U.IN_TEMPLATE),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),i}getFragment(){const t=this.treeAdapter.getFirstChild(this.document),n=this.treeAdapter.createDocumentFragment();return this._adoptNodes(t,n),n}_err(t,n,r){var s;if(!this.onParseError)return;const i=(s=t.location)!==null&&s!==void 0?s:cS,a={code:n,startLine:i.startLine,startCol:i.startCol,startOffset:i.startOffset,endLine:r?i.startLine:i.endLine,endCol:r?i.startCol:i.endCol,endOffset:r?i.startOffset:i.endOffset};this.onParseError(a)}onItemPush(t,n,r){var s,i;(i=(s=this.treeAdapter).onItemPush)===null||i===void 0||i.call(s,t),r&&this.openElements.stackTop>0&&this._setContextModes(t,n)}onItemPop(t,n){var r,s;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),(s=(r=this.treeAdapter).onItemPop)===null||s===void 0||s.call(r,t,this.openElements.current),n){let i,a;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,a=this.fragmentContextID):{current:i,currentTagId:a}=this.openElements,this._setContextModes(i,a)}}_setContextModes(t,n){const r=t===this.document||t&&this.treeAdapter.getNamespaceURI(t)===ie.HTML;this.currentNotInHTML=!r,this.tokenizer.inForeignNode=!r&&t!==void 0&&n!==void 0&&!this._isIntegrationPoint(n,t)}_switchToTextParsing(t,n){this._insertElement(t,ie.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=U.TEXT}switchToPlaintextParsing(){this.insertionMode=U.TEXT,this.originalInsertionMode=U.IN_BODY,this.tokenizer.state=ft.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===Y.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==ie.HTML))switch(this.fragmentContextID){case b.TITLE:case b.TEXTAREA:{this.tokenizer.state=ft.RCDATA;break}case b.STYLE:case b.XMP:case b.IFRAME:case b.NOEMBED:case b.NOFRAMES:case b.NOSCRIPT:{this.tokenizer.state=ft.RAWTEXT;break}case b.SCRIPT:{this.tokenizer.state=ft.SCRIPT_DATA;break}case b.PLAINTEXT:{this.tokenizer.state=ft.PLAINTEXT;break}}}_setDocumentType(t){const n=t.name||"",r=t.publicId||"",s=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,n,r,s),t.location){const a=this.treeAdapter.getChildNodes(this.document).find(o=>this.treeAdapter.isDocumentTypeNode(o));a&&this.treeAdapter.setNodeSourceCodeLocation(a,t.location)}}_attachElementToTree(t,n){if(this.options.sourceCodeLocationInfo){const r=n&&{...n,startTag:n};this.treeAdapter.setNodeSourceCodeLocation(t,r)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const r=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(r??this.document,t)}}_appendElement(t,n){const r=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(r,t.location)}_insertElement(t,n){const r=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(r,t.location),this.openElements.push(r,t.tagID)}_insertFakeElement(t,n){const r=this.treeAdapter.createElement(t,ie.HTML,[]);this._attachElementToTree(r,null),this.openElements.push(r,n)}_insertTemplate(t){const n=this.treeAdapter.createElement(t.tagName,ie.HTML,t.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(n,r),this._attachElementToTree(n,t.location),this.openElements.push(n,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(Y.HTML,ie.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,b.HTML)}_appendCommentNode(t,n){const r=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(n,r),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,t.location)}_insertCharacters(t){let n,r;if(this._shouldFosterParentOnInsertion()?({parent:n,beforeElement:r}=this._findFosterParentingLocation(),r?this.treeAdapter.insertTextBefore(n,t.chars,r):this.treeAdapter.insertText(n,t.chars)):(n=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(n,t.chars)),!t.location)return;const s=this.treeAdapter.getChildNodes(n),i=r?s.lastIndexOf(r):s.length,a=s[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(a)){const{endLine:u,endCol:l,endOffset:c}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(a,{endLine:u,endCol:l,endOffset:c})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(a,t.location)}_adoptNodes(t,n){for(let r=this.treeAdapter.getFirstChild(t);r;r=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(r),this.treeAdapter.appendChild(n,r)}_setEndLocation(t,n){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&n.location){const r=n.location,s=this.treeAdapter.getTagName(t),i=n.type===je.END_TAG&&s===n.tagName?{endTag:{...r},endLine:r.endLine,endCol:r.endCol,endOffset:r.endOffset}:{endLine:r.startLine,endCol:r.startCol,endOffset:r.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let n,r;return this.openElements.stackTop===0&&this.fragmentContext?(n=this.fragmentContext,r=this.fragmentContextID):{current:n,currentTagId:r}=this.openElements,t.tagID===b.SVG&&this.treeAdapter.getTagName(n)===Y.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(n)===ie.MATHML?!1:this.tokenizer.inForeignNode||(t.tagID===b.MGLYPH||t.tagID===b.MALIGNMARK)&&r!==void 0&&!this._isIntegrationPoint(r,n,ie.HTML)}_processToken(t){switch(t.type){case je.CHARACTER:{this.onCharacter(t);break}case je.NULL_CHARACTER:{this.onNullCharacter(t);break}case je.COMMENT:{this.onComment(t);break}case je.DOCTYPE:{this.onDoctype(t);break}case je.START_TAG:{this._processStartTag(t);break}case je.END_TAG:{this.onEndTag(t);break}case je.EOF:{this.onEof(t);break}case je.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(t);break}}}_isIntegrationPoint(t,n,r){const s=this.treeAdapter.getNamespaceURI(n),i=this.treeAdapter.getAttrList(n);return aS(t,s,i,r)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const n=this.activeFormattingElements.entries.findIndex(s=>s.type===en.Marker||this.openElements.contains(s.element)),r=n===-1?t-1:n-1;for(let s=r;s>=0;s--){const i=this.activeFormattingElements.entries[s];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=U.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(b.P),this.openElements.popUntilTagNamePopped(b.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(t===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case b.TR:{this.insertionMode=U.IN_ROW;return}case b.TBODY:case b.THEAD:case b.TFOOT:{this.insertionMode=U.IN_TABLE_BODY;return}case b.CAPTION:{this.insertionMode=U.IN_CAPTION;return}case b.COLGROUP:{this.insertionMode=U.IN_COLUMN_GROUP;return}case b.TABLE:{this.insertionMode=U.IN_TABLE;return}case b.BODY:{this.insertionMode=U.IN_BODY;return}case b.FRAMESET:{this.insertionMode=U.IN_FRAMESET;return}case b.SELECT:{this._resetInsertionModeForSelect(t);return}case b.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case b.HTML:{this.insertionMode=this.headElement?U.AFTER_HEAD:U.BEFORE_HEAD;return}case b.TD:case b.TH:{if(t>0){this.insertionMode=U.IN_CELL;return}break}case b.HEAD:{if(t>0){this.insertionMode=U.IN_HEAD;return}break}}this.insertionMode=U.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let n=t-1;n>0;n--){const r=this.openElements.tagIDs[n];if(r===b.TEMPLATE)break;if(r===b.TABLE){this.insertionMode=U.IN_SELECT_IN_TABLE;return}}this.insertionMode=U.IN_SELECT}_isElementCausesFosterParenting(t){return rp.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this.openElements.currentTagId!==void 0&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const n=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case b.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(n)===ie.HTML)return{parent:this.treeAdapter.getTemplateContent(n),beforeElement:null};break}case b.TABLE:{const r=this.treeAdapter.getParentNode(n);return r?{parent:r,beforeElement:n}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,t,n.beforeElement):this.treeAdapter.appendChild(n.parent,t)}_isSpecialElement(t,n){const r=this.treeAdapter.getNamespaceURI(t);return Nw[r].has(n)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){HA(this,t);return}switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.IN_BODY:case U.IN_CAPTION:case U.IN_CELL:case U.IN_TEMPLATE:{sp(this,t);break}case U.TEXT:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:{this._insertCharacters(t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_TABLE_TEXT:{dp(this,t);break}case U.IN_COLUMN_GROUP:{_s(this,t);break}case U.AFTER_BODY:{Is(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){jA(this,t);return}switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.TEXT:{this._insertCharacters(t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_COLUMN_GROUP:{_s(this,t);break}case U.AFTER_BODY:{Is(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML){Fo(this,t);return}switch(this.insertionMode){case U.INITIAL:case U.BEFORE_HTML:case U.BEFORE_HEAD:case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:case U.IN_BODY:case U.IN_TABLE:case U.IN_CAPTION:case U.IN_COLUMN_GROUP:case U.IN_TABLE_BODY:case U.IN_ROW:case U.IN_CELL:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:case U.IN_TEMPLATE:case U.IN_FRAMESET:case U.AFTER_FRAMESET:{Fo(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.AFTER_BODY:{xS(this,t);break}case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{bS(this,t);break}}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case U.INITIAL:{yS(this,t);break}case U.BEFORE_HEAD:case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:{this._err(t,Q.misplacedDoctype);break}case U.IN_TABLE_TEXT:{qr(this,t);break}}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,Q.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?UA(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ES(this,t);break}case U.BEFORE_HEAD:{vS(this,t);break}case U.IN_HEAD:{Kt(this,t);break}case U.IN_HEAD_NO_SCRIPT:{SS(this,t);break}case U.AFTER_HEAD:{CS(this,t);break}case U.IN_BODY:{kt(this,t);break}case U.IN_TABLE:{vr(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_CAPTION:{kA(this,t);break}case U.IN_COLUMN_GROUP:{Wu(this,t);break}case U.IN_TABLE_BODY:{na(this,t);break}case U.IN_ROW:{ra(this,t);break}case U.IN_CELL:{AA(this,t);break}case U.IN_SELECT:{mp(this,t);break}case U.IN_SELECT_IN_TABLE:{_A(this,t);break}case U.IN_TEMPLATE:{NA(this,t);break}case U.AFTER_BODY:{LA(this,t);break}case U.IN_FRAMESET:{MA(this,t);break}case U.AFTER_FRAMESET:{DA(this,t);break}case U.AFTER_AFTER_BODY:{FA(this,t);break}case U.AFTER_AFTER_FRAMESET:{BA(this,t);break}}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?zA(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{TS(this,t);break}case U.BEFORE_HEAD:{kS(this,t);break}case U.IN_HEAD:{wS(this,t);break}case U.IN_HEAD_NO_SCRIPT:{AS(this,t);break}case U.AFTER_HEAD:{_S(this,t);break}case U.IN_BODY:{ta(this,t);break}case U.TEXT:{hA(this,t);break}case U.IN_TABLE:{bi(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_CAPTION:{wA(this,t);break}case U.IN_COLUMN_GROUP:{SA(this,t);break}case U.IN_TABLE_BODY:{Bo(this,t);break}case U.IN_ROW:{hp(this,t);break}case U.IN_CELL:{CA(this,t);break}case U.IN_SELECT:{pp(this,t);break}case U.IN_SELECT_IN_TABLE:{IA(this,t);break}case U.IN_TEMPLATE:{RA(this,t);break}case U.AFTER_BODY:{xp(this,t);break}case U.IN_FRAMESET:{PA(this,t);break}case U.AFTER_FRAMESET:{OA(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onEof(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.IN_BODY:case U.IN_TABLE:case U.IN_CAPTION:case U.IN_COLUMN_GROUP:case U.IN_TABLE_BODY:case U.IN_ROW:case U.IN_CELL:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:{lp(this,t);break}case U.TEXT:{mA(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_TEMPLATE:{gp(this,t);break}case U.AFTER_BODY:case U.IN_FRAMESET:case U.AFTER_FRAMESET:case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{$u(this,t);break}}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===O.LINE_FEED)){if(t.chars.length===1)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(t);return}switch(this.insertionMode){case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:case U.TEXT:case U.IN_COLUMN_GROUP:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:case U.IN_FRAMESET:case U.AFTER_FRAMESET:{this._insertCharacters(t);break}case U.IN_BODY:case U.IN_CAPTION:case U.IN_CELL:case U.IN_TEMPLATE:case U.AFTER_BODY:case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{ip(this,t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_TABLE_TEXT:{cp(this,t);break}}}}function dS(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagID)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):up(e,t),n}function fS(e,t){let n=null,r=e.openElements.stackTop;for(;r>=0;r--){const s=e.openElements.items[r];if(s===t.element)break;e._isSpecialElement(s,e.openElements.tagIDs[r])&&(n=s)}return n||(e.openElements.shortenToLength(Math.max(r,0)),e.activeFormattingElements.removeEntry(t)),n}function hS(e,t,n){let r=t,s=e.openElements.getCommonAncestor(t);for(let i=0,a=s;a!==n;i++,a=s){s=e.openElements.getCommonAncestor(a);const o=e.activeFormattingElements.getElementEntry(a),u=o&&i>=lS;!o||u?(u&&e.activeFormattingElements.removeEntry(o),e.openElements.remove(a)):(a=mS(e,o),r===t&&(e.activeFormattingElements.bookmark=o),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}function mS(e,t){const n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function pS(e,t,n){const r=e.treeAdapter.getTagName(t),s=_r(r);if(e._isElementCausesFosterParenting(s))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(t);s===b.TEMPLATE&&i===ie.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function gS(e,t,n){const r=e.treeAdapter.getNamespaceURI(n.element),{token:s}=n,i=e.treeAdapter.createElement(s.tagName,r,s.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,s),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i,s.tagID)}function qu(e,t){for(let n=0;n<uS;n++){const r=dS(e,t);if(!r)break;const s=fS(e,r);if(!s)break;e.activeFormattingElements.bookmark=r;const i=hS(e,s,r.element),a=e.openElements.getCommonAncestor(r.element);e.treeAdapter.detachNode(i),a&&pS(e,a,i),gS(e,s,r)}}function Fo(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function xS(e,t){e._appendCommentNode(t,e.openElements.items[0])}function bS(e,t){e._appendCommentNode(t,e.document)}function $u(e,t){if(e.stopped=!0,t.location){const n=e.fragmentContext?0:2;for(let r=e.openElements.stackTop;r>=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const r=e.openElements.items[0],s=e.treeAdapter.getNodeSourceCodeLocation(r);if(s&&!s.endTag&&(e._setEndLocation(r,t),e.openElements.stackTop>=1)){const i=e.openElements.items[1],a=e.treeAdapter.getNodeSourceCodeLocation(i);a&&!a.endTag&&e._setEndLocation(i,t)}}}}function yS(e,t){e._setDocumentType(t);const n=t.forceQuirks?Ht.QUIRKS:Kw(t);Gw(t)||e._err(t,Q.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=U.BEFORE_HTML}function Vr(e,t){e._err(t,Q.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Ht.QUIRKS),e.insertionMode=U.BEFORE_HTML,e._processToken(t)}function ES(e,t){t.tagID===b.HTML?(e._insertElement(t,ie.HTML),e.insertionMode=U.BEFORE_HEAD):ni(e,t)}function TS(e,t){const n=t.tagID;(n===b.HTML||n===b.HEAD||n===b.BODY||n===b.BR)&&ni(e,t)}function ni(e,t){e._insertFakeRootElement(),e.insertionMode=U.BEFORE_HEAD,e._processToken(t)}function vS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.HEAD:{e._insertElement(t,ie.HTML),e.headElement=e.openElements.current,e.insertionMode=U.IN_HEAD;break}default:ri(e,t)}}function kS(e,t){const n=t.tagID;n===b.HEAD||n===b.BODY||n===b.HTML||n===b.BR?ri(e,t):e._err(t,Q.endTagWithoutMatchingOpenElement)}function ri(e,t){e._insertFakeElement(Y.HEAD,b.HEAD),e.headElement=e.openElements.current,e.insertionMode=U.IN_HEAD,e._processToken(t)}function Kt(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.TITLE:{e._switchToTextParsing(t,ft.RCDATA);break}case b.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(t,ft.RAWTEXT):(e._insertElement(t,ie.HTML),e.insertionMode=U.IN_HEAD_NO_SCRIPT);break}case b.NOFRAMES:case b.STYLE:{e._switchToTextParsing(t,ft.RAWTEXT);break}case b.SCRIPT:{e._switchToTextParsing(t,ft.SCRIPT_DATA);break}case b.TEMPLATE:{e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=U.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(U.IN_TEMPLATE);break}case b.HEAD:{e._err(t,Q.misplacedStartTagForHeadElement);break}default:ii(e,t)}}function wS(e,t){switch(t.tagID){case b.HEAD:{e.openElements.pop(),e.insertionMode=U.AFTER_HEAD;break}case b.BODY:case b.BR:case b.HTML:{ii(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function Zn(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==b.TEMPLATE&&e._err(t,Q.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,Q.endTagWithoutMatchingOpenElement)}function ii(e,t){e.openElements.pop(),e.insertionMode=U.AFTER_HEAD,e._processToken(t)}function SS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BASEFONT:case b.BGSOUND:case b.HEAD:case b.LINK:case b.META:case b.NOFRAMES:case b.STYLE:{Kt(e,t);break}case b.NOSCRIPT:{e._err(t,Q.nestedNoscriptInHead);break}default:si(e,t)}}function AS(e,t){switch(t.tagID){case b.NOSCRIPT:{e.openElements.pop(),e.insertionMode=U.IN_HEAD;break}case b.BR:{si(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function si(e,t){const n=t.type===je.EOF?Q.openElementsLeftAfterEof:Q.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=U.IN_HEAD,e._processToken(t)}function CS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BODY:{e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=U.IN_BODY;break}case b.FRAMESET:{e._insertElement(t,ie.HTML),e.insertionMode=U.IN_FRAMESET;break}case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:case b.NOFRAMES:case b.SCRIPT:case b.STYLE:case b.TEMPLATE:case b.TITLE:{e._err(t,Q.abandonedHeadElementChild),e.openElements.push(e.headElement,b.HEAD),Kt(e,t),e.openElements.remove(e.headElement);break}case b.HEAD:{e._err(t,Q.misplacedStartTagForHeadElement);break}default:ai(e,t)}}function _S(e,t){switch(t.tagID){case b.BODY:case b.HTML:case b.BR:{ai(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function ai(e,t){e._insertFakeElement(Y.BODY,b.BODY),e.insertionMode=U.IN_BODY,ea(e,t)}function ea(e,t){switch(t.type){case je.CHARACTER:{sp(e,t);break}case je.WHITESPACE_CHARACTER:{ip(e,t);break}case je.COMMENT:{Fo(e,t);break}case je.START_TAG:{kt(e,t);break}case je.END_TAG:{ta(e,t);break}case je.EOF:{lp(e,t);break}}}function ip(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function sp(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function IS(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function NS(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}function RS(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_FRAMESET)}function LS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML)}function MS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e.openElements.currentTagId!==void 0&&Oo.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,ie.HTML)}function PS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function DS(e,t){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),n||(e.formElement=e.openElements.current))}function OS(e,t){e.framesetOk=!1;const n=t.tagID;for(let r=e.openElements.stackTop;r>=0;r--){const s=e.openElements.tagIDs[r];if(n===b.LI&&s===b.LI||(n===b.DD||n===b.DT)&&(s===b.DD||s===b.DT)){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(s!==b.ADDRESS&&s!==b.DIV&&s!==b.P&&e._isSpecialElement(e.openElements.items[r],s))break}e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML)}function FS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.tokenizer.state=ft.PLAINTEXT}function BS(e,t){e.openElements.hasInScope(b.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.framesetOk=!1}function jS(e,t){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(Y.A);n&&(qu(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function HS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function US(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(b.NOBR)&&(qu(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function zS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function VS(e,t){e.treeAdapter.getDocumentMode(e.document)!==Ht.QUIRKS&&e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=U.IN_TABLE}function ap(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ie.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function op(e){const t=Km(e,$n.TYPE);return t!=null&&t.toLowerCase()===oS}function qS(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ie.HTML),op(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}function $S(e,t){e._appendElement(t,ie.HTML),t.ackSelfClosing=!0}function WS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._appendElement(t,ie.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function YS(e,t){t.tagName=Y.IMG,t.tagID=b.IMG,ap(e,t)}function GS(e,t){e._insertElement(t,ie.HTML),e.skipNextNewLine=!0,e.tokenizer.state=ft.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=U.TEXT}function KS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,ft.RAWTEXT)}function XS(e,t){e.framesetOk=!1,e._switchToTextParsing(t,ft.RAWTEXT)}function id(e,t){e._switchToTextParsing(t,ft.RAWTEXT)}function QS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===U.IN_TABLE||e.insertionMode===U.IN_CAPTION||e.insertionMode===U.IN_TABLE_BODY||e.insertionMode===U.IN_ROW||e.insertionMode===U.IN_CELL?U.IN_SELECT_IN_TABLE:U.IN_SELECT}function ZS(e,t){e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML)}function JS(e,t){e.openElements.hasInScope(b.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,ie.HTML)}function eA(e,t){e.openElements.hasInScope(b.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(b.RTC),e._insertElement(t,ie.HTML)}function tA(e,t){e._reconstructActiveFormattingElements(),tp(t),Vu(t),t.selfClosing?e._appendElement(t,ie.MATHML):e._insertElement(t,ie.MATHML),t.ackSelfClosing=!0}function nA(e,t){e._reconstructActiveFormattingElements(),np(t),Vu(t),t.selfClosing?e._appendElement(t,ie.SVG):e._insertElement(t,ie.SVG),t.ackSelfClosing=!0}function sd(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML)}function kt(e,t){switch(t.tagID){case b.I:case b.S:case b.B:case b.U:case b.EM:case b.TT:case b.BIG:case b.CODE:case b.FONT:case b.SMALL:case b.STRIKE:case b.STRONG:{HS(e,t);break}case b.A:{jS(e,t);break}case b.H1:case b.H2:case b.H3:case b.H4:case b.H5:case b.H6:{MS(e,t);break}case b.P:case b.DL:case b.OL:case b.UL:case b.DIV:case b.DIR:case b.NAV:case b.MAIN:case b.MENU:case b.ASIDE:case b.CENTER:case b.FIGURE:case b.FOOTER:case b.HEADER:case b.HGROUP:case b.DIALOG:case b.DETAILS:case b.ADDRESS:case b.ARTICLE:case b.SEARCH:case b.SECTION:case b.SUMMARY:case b.FIELDSET:case b.BLOCKQUOTE:case b.FIGCAPTION:{LS(e,t);break}case b.LI:case b.DD:case b.DT:{OS(e,t);break}case b.BR:case b.IMG:case b.WBR:case b.AREA:case b.EMBED:case b.KEYGEN:{ap(e,t);break}case b.HR:{WS(e,t);break}case b.RB:case b.RTC:{JS(e,t);break}case b.RT:case b.RP:{eA(e,t);break}case b.PRE:case b.LISTING:{PS(e,t);break}case b.XMP:{KS(e,t);break}case b.SVG:{nA(e,t);break}case b.HTML:{IS(e,t);break}case b.BASE:case b.LINK:case b.META:case b.STYLE:case b.TITLE:case b.SCRIPT:case b.BGSOUND:case b.BASEFONT:case b.TEMPLATE:{Kt(e,t);break}case b.BODY:{NS(e,t);break}case b.FORM:{DS(e,t);break}case b.NOBR:{US(e,t);break}case b.MATH:{tA(e,t);break}case b.TABLE:{VS(e,t);break}case b.INPUT:{qS(e,t);break}case b.PARAM:case b.TRACK:case b.SOURCE:{$S(e,t);break}case b.IMAGE:{YS(e,t);break}case b.BUTTON:{BS(e,t);break}case b.APPLET:case b.OBJECT:case b.MARQUEE:{zS(e,t);break}case b.IFRAME:{XS(e,t);break}case b.SELECT:{QS(e,t);break}case b.OPTION:case b.OPTGROUP:{ZS(e,t);break}case b.NOEMBED:case b.NOFRAMES:{id(e,t);break}case b.FRAMESET:{RS(e,t);break}case b.TEXTAREA:{GS(e,t);break}case b.NOSCRIPT:{e.options.scriptingEnabled?id(e,t):sd(e,t);break}case b.PLAINTEXT:{FS(e,t);break}case b.COL:case b.TH:case b.TD:case b.TR:case b.HEAD:case b.FRAME:case b.TBODY:case b.TFOOT:case b.THEAD:case b.CAPTION:case b.COLGROUP:break;default:sd(e,t)}}function rA(e,t){if(e.openElements.hasInScope(b.BODY)&&(e.insertionMode=U.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}function iA(e,t){e.openElements.hasInScope(b.BODY)&&(e.insertionMode=U.AFTER_BODY,xp(e,t))}function sA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function aA(e){const t=e.openElements.tmplCount>0,{formElement:n}=e;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(b.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(b.FORM):n&&e.openElements.remove(n))}function oA(e){e.openElements.hasInButtonScope(b.P)||e._insertFakeElement(Y.P,b.P),e._closePElement()}function uA(e){e.openElements.hasInListItemScope(b.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(b.LI),e.openElements.popUntilTagNamePopped(b.LI))}function lA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function cA(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function dA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function fA(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(Y.BR,b.BR),e.openElements.pop(),e.framesetOk=!1}function up(e,t){const n=t.tagName,r=t.tagID;for(let s=e.openElements.stackTop;s>0;s--){const i=e.openElements.items[s],a=e.openElements.tagIDs[s];if(r===a&&(r!==b.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.stackTop>=s&&e.openElements.shortenToLength(s);break}if(e._isSpecialElement(i,a))break}}function ta(e,t){switch(t.tagID){case b.A:case b.B:case b.I:case b.S:case b.U:case b.EM:case b.TT:case b.BIG:case b.CODE:case b.FONT:case b.NOBR:case b.SMALL:case b.STRIKE:case b.STRONG:{qu(e,t);break}case b.P:{oA(e);break}case b.DL:case b.UL:case b.OL:case b.DIR:case b.DIV:case b.NAV:case b.PRE:case b.MAIN:case b.MENU:case b.ASIDE:case b.BUTTON:case b.CENTER:case b.FIGURE:case b.FOOTER:case b.HEADER:case b.HGROUP:case b.DIALOG:case b.ADDRESS:case b.ARTICLE:case b.DETAILS:case b.SEARCH:case b.SECTION:case b.SUMMARY:case b.LISTING:case b.FIELDSET:case b.BLOCKQUOTE:case b.FIGCAPTION:{sA(e,t);break}case b.LI:{uA(e);break}case b.DD:case b.DT:{lA(e,t);break}case b.H1:case b.H2:case b.H3:case b.H4:case b.H5:case b.H6:{cA(e);break}case b.BR:{fA(e);break}case b.BODY:{rA(e,t);break}case b.HTML:{iA(e,t);break}case b.FORM:{aA(e);break}case b.APPLET:case b.OBJECT:case b.MARQUEE:{dA(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:up(e,t)}}function lp(e,t){e.tmplInsertionModeStack.length>0?gp(e,t):$u(e,t)}function hA(e,t){var n;t.tagID===b.SCRIPT&&((n=e.scriptHandler)===null||n===void 0||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function mA(e,t){e._err(t,Q.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}function $a(e,t){if(e.openElements.currentTagId!==void 0&&rp.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=U.IN_TABLE_TEXT,t.type){case je.CHARACTER:{dp(e,t);break}case je.WHITESPACE_CHARACTER:{cp(e,t);break}}else _i(e,t)}function pA(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_CAPTION}function gA(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_COLUMN_GROUP}function xA(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Y.COLGROUP,b.COLGROUP),e.insertionMode=U.IN_COLUMN_GROUP,Wu(e,t)}function bA(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_TABLE_BODY}function yA(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Y.TBODY,b.TBODY),e.insertionMode=U.IN_TABLE_BODY,na(e,t)}function EA(e,t){e.openElements.hasInTableScope(b.TABLE)&&(e.openElements.popUntilTagNamePopped(b.TABLE),e._resetInsertionMode(),e._processStartTag(t))}function TA(e,t){op(t)?e._appendElement(t,ie.HTML):_i(e,t),t.ackSelfClosing=!0}function vA(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,ie.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function vr(e,t){switch(t.tagID){case b.TD:case b.TH:case b.TR:{yA(e,t);break}case b.STYLE:case b.SCRIPT:case b.TEMPLATE:{Kt(e,t);break}case b.COL:{xA(e,t);break}case b.FORM:{vA(e,t);break}case b.TABLE:{EA(e,t);break}case b.TBODY:case b.TFOOT:case b.THEAD:{bA(e,t);break}case b.INPUT:{TA(e,t);break}case b.CAPTION:{pA(e,t);break}case b.COLGROUP:{gA(e,t);break}default:_i(e,t)}}function bi(e,t){switch(t.tagID){case b.TABLE:{e.openElements.hasInTableScope(b.TABLE)&&(e.openElements.popUntilTagNamePopped(b.TABLE),e._resetInsertionMode());break}case b.TEMPLATE:{Zn(e,t);break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TBODY:case b.TD:case b.TFOOT:case b.TH:case b.THEAD:case b.TR:break;default:_i(e,t)}}function _i(e,t){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,ea(e,t),e.fosterParentingEnabled=n}function cp(e,t){e.pendingCharacterTokens.push(t)}function dp(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function qr(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)_i(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}const fp=new Set([b.CAPTION,b.COL,b.COLGROUP,b.TBODY,b.TD,b.TFOOT,b.TH,b.THEAD,b.TR]);function kA(e,t){const n=t.tagID;fp.has(n)?e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_TABLE,vr(e,t)):kt(e,t)}function wA(e,t){const n=t.tagID;switch(n){case b.CAPTION:case b.TABLE:{e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_TABLE,n===b.TABLE&&bi(e,t));break}case b.BODY:case b.COL:case b.COLGROUP:case b.HTML:case b.TBODY:case b.TD:case b.TFOOT:case b.TH:case b.THEAD:case b.TR:break;default:ta(e,t)}}function Wu(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.COL:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.TEMPLATE:{Kt(e,t);break}default:_s(e,t)}}function SA(e,t){switch(t.tagID){case b.COLGROUP:{e.openElements.currentTagId===b.COLGROUP&&(e.openElements.pop(),e.insertionMode=U.IN_TABLE);break}case b.TEMPLATE:{Zn(e,t);break}case b.COL:break;default:_s(e,t)}}function _s(e,t){e.openElements.currentTagId===b.COLGROUP&&(e.openElements.pop(),e.insertionMode=U.IN_TABLE,e._processToken(t))}function na(e,t){switch(t.tagID){case b.TR:{e.openElements.clearBackToTableBodyContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_ROW;break}case b.TH:case b.TD:{e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(Y.TR,b.TR),e.insertionMode=U.IN_ROW,ra(e,t);break}case b.CAPTION:case b.COL:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE,vr(e,t));break}default:vr(e,t)}}function Bo(e,t){const n=t.tagID;switch(t.tagID){case b.TBODY:case b.TFOOT:case b.THEAD:{e.openElements.hasInTableScope(n)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE);break}case b.TABLE:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE,bi(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TD:case b.TH:case b.TR:break;default:bi(e,t)}}function ra(e,t){switch(t.tagID){case b.TH:case b.TD:{e.openElements.clearBackToTableRowContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_CELL,e.activeFormattingElements.insertMarker();break}case b.CAPTION:case b.COL:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:case b.TR:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,na(e,t));break}default:vr(e,t)}}function hp(e,t){switch(t.tagID){case b.TR:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY);break}case b.TABLE:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,Bo(e,t));break}case b.TBODY:case b.TFOOT:case b.THEAD:{(e.openElements.hasInTableScope(t.tagID)||e.openElements.hasInTableScope(b.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,Bo(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TD:case b.TH:break;default:bi(e,t)}}function AA(e,t){const n=t.tagID;fp.has(n)?(e.openElements.hasInTableScope(b.TD)||e.openElements.hasInTableScope(b.TH))&&(e._closeTableCell(),ra(e,t)):kt(e,t)}function CA(e,t){const n=t.tagID;switch(n){case b.TD:case b.TH:{e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_ROW);break}case b.TABLE:case b.TBODY:case b.TFOOT:case b.THEAD:case b.TR:{e.openElements.hasInTableScope(n)&&(e._closeTableCell(),hp(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:break;default:ta(e,t)}}function mp(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.OPTION:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e._insertElement(t,ie.HTML);break}case b.OPTGROUP:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop(),e._insertElement(t,ie.HTML);break}case b.HR:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop(),e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.INPUT:case b.KEYGEN:case b.TEXTAREA:case b.SELECT:{e.openElements.hasInSelectScope(b.SELECT)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),t.tagID!==b.SELECT&&e._processStartTag(t));break}case b.SCRIPT:case b.TEMPLATE:{Kt(e,t);break}}}function pp(e,t){switch(t.tagID){case b.OPTGROUP:{e.openElements.stackTop>0&&e.openElements.currentTagId===b.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===b.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop();break}case b.OPTION:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop();break}case b.SELECT:{e.openElements.hasInSelectScope(b.SELECT)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode());break}case b.TEMPLATE:{Zn(e,t);break}}}function _A(e,t){const n=t.tagID;n===b.CAPTION||n===b.TABLE||n===b.TBODY||n===b.TFOOT||n===b.THEAD||n===b.TR||n===b.TD||n===b.TH?(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e._processStartTag(t)):mp(e,t)}function IA(e,t){const n=t.tagID;n===b.CAPTION||n===b.TABLE||n===b.TBODY||n===b.TFOOT||n===b.THEAD||n===b.TR||n===b.TD||n===b.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e.onEndTag(t)):pp(e,t)}function NA(e,t){switch(t.tagID){case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:case b.NOFRAMES:case b.SCRIPT:case b.STYLE:case b.TEMPLATE:case b.TITLE:{Kt(e,t);break}case b.CAPTION:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:{e.tmplInsertionModeStack[0]=U.IN_TABLE,e.insertionMode=U.IN_TABLE,vr(e,t);break}case b.COL:{e.tmplInsertionModeStack[0]=U.IN_COLUMN_GROUP,e.insertionMode=U.IN_COLUMN_GROUP,Wu(e,t);break}case b.TR:{e.tmplInsertionModeStack[0]=U.IN_TABLE_BODY,e.insertionMode=U.IN_TABLE_BODY,na(e,t);break}case b.TD:case b.TH:{e.tmplInsertionModeStack[0]=U.IN_ROW,e.insertionMode=U.IN_ROW,ra(e,t);break}default:e.tmplInsertionModeStack[0]=U.IN_BODY,e.insertionMode=U.IN_BODY,kt(e,t)}}function RA(e,t){t.tagID===b.TEMPLATE&&Zn(e,t)}function gp(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):$u(e,t)}function LA(e,t){t.tagID===b.HTML?kt(e,t):Is(e,t)}function xp(e,t){var n;if(t.tagID===b.HTML){if(e.fragmentContext||(e.insertionMode=U.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===b.HTML){e._setEndLocation(e.openElements.items[0],t);const r=e.openElements.items[1];r&&!(!((n=e.treeAdapter.getNodeSourceCodeLocation(r))===null||n===void 0)&&n.endTag)&&e._setEndLocation(r,t)}}else Is(e,t)}function Is(e,t){e.insertionMode=U.IN_BODY,ea(e,t)}function MA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.FRAMESET:{e._insertElement(t,ie.HTML);break}case b.FRAME:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.NOFRAMES:{Kt(e,t);break}}}function PA(e,t){t.tagID===b.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==b.FRAMESET&&(e.insertionMode=U.AFTER_FRAMESET))}function DA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.NOFRAMES:{Kt(e,t);break}}}function OA(e,t){t.tagID===b.HTML&&(e.insertionMode=U.AFTER_AFTER_FRAMESET)}function FA(e,t){t.tagID===b.HTML?kt(e,t):ls(e,t)}function ls(e,t){e.insertionMode=U.IN_BODY,ea(e,t)}function BA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.NOFRAMES:{Kt(e,t);break}}}function jA(e,t){t.chars=at,e._insertCharacters(t)}function HA(e,t){e._insertCharacters(t),e.framesetOk=!1}function bp(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==ie.HTML&&e.openElements.currentTagId!==void 0&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function UA(e,t){if(nS(t))bp(e),e._startTagOutsideForeignContent(t);else{const n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===ie.MATHML?tp(t):r===ie.SVG&&(rS(t),np(t)),Vu(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}function zA(e,t){if(t.tagID===b.P||t.tagID===b.BR){bp(e),e._endTagOutsideForeignContent(t);return}for(let n=e.openElements.stackTop;n>0;n--){const r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===ie.HTML){e._endTagOutsideForeignContent(t);break}const s=e.treeAdapter.getTagName(r);if(s.toLowerCase()===t.tagName){t.tagName=s,e.openElements.shortenToLength(n);break}}}Y.AREA,Y.BASE,Y.BASEFONT,Y.BGSOUND,Y.BR,Y.COL,Y.EMBED,Y.FRAME,Y.HR,Y.IMG,Y.INPUT,Y.KEYGEN,Y.LINK,Y.META,Y.PARAM,Y.SOURCE,Y.TRACK,Y.WBR;const VA=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\t\n\f\r />])/gi,qA=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),ad={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function yp(e,t){const n=eC(e),r=Tm("type",{handlers:{root:$A,element:WA,text:YA,comment:Tp,doctype:GA,raw:XA},unknown:QA}),s={parser:n?new rd(ad):rd.getFragmentParser(void 0,ad),handle(o){r(o,s)},stitches:!1,options:t||{}};r(e,s),Ir(s,sn());const i=n?s.parser.document:s.parser.getFragment(),a=tw(i,{file:s.options.file});return s.stitches&&Js(a,"comment",function(o,u,l){const c=o;if(c.value.stitch&&l&&u!==void 0){const f=l.children;return f[u]=c.value.stitch,u}}),a.type==="root"&&a.children.length===1&&a.children[0].type===e.type?a.children[0]:a}function Ep(e,t){let n=-1;if(e)for(;++n<e.length;)t.handle(e[n])}function $A(e,t){Ep(e.children,t)}function WA(e,t){ZA(e,t),Ep(e.children,t),JA(e,t)}function YA(e,t){t.parser.tokenizer.state>4&&(t.parser.tokenizer.state=0);const n={type:je.CHARACTER,chars:e.value,location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function GA(e,t){const n={type:je.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function KA(e,t){t.stitches=!0;const n=tC(e);if("children"in e&&"children"in n){const r=yp({type:"root",children:e.children},t.options);n.children=r.children}Tp({type:"comment",value:{stitch:n}},t)}function Tp(e,t){const n=e.value,r={type:je.COMMENT,data:n,location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function XA(e,t){if(t.parser.tokenizer.preprocessor.html="",t.parser.tokenizer.preprocessor.pos=-1,t.parser.tokenizer.preprocessor.lastGapPos=-2,t.parser.tokenizer.preprocessor.gapStack=[],t.parser.tokenizer.preprocessor.skipNextNewLine=!1,t.parser.tokenizer.preprocessor.lastChunkWritten=!1,t.parser.tokenizer.preprocessor.endOfChunkHit=!1,t.parser.tokenizer.preprocessor.isEol=!1,vp(t,sn(e)),t.parser.tokenizer.write(t.options.tagfilter?e.value.replace(VA,"&lt;$1$2"):e.value,!1),t.parser.tokenizer._runParsingLoop(),t.parser.tokenizer.state===72||t.parser.tokenizer.state===78){t.parser.tokenizer.preprocessor.lastChunkWritten=!0;const n=t.parser.tokenizer._consume();t.parser.tokenizer._callState(n)}}function QA(e,t){const n=e;if(t.options.passThrough&&t.options.passThrough.includes(n.type))KA(n,t);else{let r="";throw qA.has(n.type)&&(r=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),new Error("Cannot compile `"+n.type+"` node"+r)}}function Ir(e,t){vp(e,t);const n=e.parser.tokenizer.currentCharacterToken;n&&n.location&&(n.location.endLine=e.parser.tokenizer.preprocessor.line,n.location.endCol=e.parser.tokenizer.preprocessor.col+1,n.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=n,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=ft.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function vp(e,t){if(t&&t.offset!==void 0){const n={startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-t.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=t.offset,e.parser.tokenizer.preprocessor.line=t.line,e.parser.tokenizer.currentLocation=n}}function ZA(e,t){const n=e.tagName.toLowerCase();if(t.parser.tokenizer.state===ft.PLAINTEXT)return;Ir(t,sn(e));const r=t.parser.openElements.current;let s="namespaceURI"in r?r.namespaceURI:jn.html;s===jn.html&&n==="svg"&&(s=jn.svg);const i=aw({...e,children:[]},{space:s===jn.svg?"svg":"html"}),a={type:je.START_TAG,tagName:n,tagID:_r(n),selfClosing:!1,ackSelfClosing:!1,attrs:"attrs"in i?i.attrs:[],location:Ii(e)};t.parser.currentToken=a,t.parser._processToken(t.parser.currentToken),t.parser.tokenizer.lastStartTagName=n}function JA(e,t){const n=e.tagName.toLowerCase();if(!t.parser.tokenizer.inForeignNode&&mw.includes(n)||t.parser.tokenizer.state===ft.PLAINTEXT)return;Ir(t,Ys(e));const r={type:je.END_TAG,tagName:n,tagID:_r(n),selfClosing:!1,ackSelfClosing:!1,attrs:[],location:Ii(e)};t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken),n===t.parser.tokenizer.lastStartTagName&&(t.parser.tokenizer.state===ft.RCDATA||t.parser.tokenizer.state===ft.RAWTEXT||t.parser.tokenizer.state===ft.SCRIPT_DATA)&&(t.parser.tokenizer.state=ft.DATA)}function eC(e){const t=e.type==="root"?e.children[0]:e;return!!(t&&(t.type==="doctype"||t.type==="element"&&t.tagName.toLowerCase()==="html"))}function Ii(e){const t=sn(e)||{line:void 0,column:void 0,offset:void 0},n=Ys(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function tC(e){return"children"in e?Xn({...e,children:[]}):Xn(e)}function kp(e){return function(t,n){return yp(t,{...e,file:n})}}const Mn=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],oi={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...Mn,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...Mn],h2:[["className","sr-only"]],img:[...Mn,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...Mn,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...Mn],table:[...Mn],ul:[...Mn,["className","contains-task-list"]],"*":["abbr","accept","acceptCharset","accessKey","action","align","alt","axis","border","cellPadding","cellSpacing","char","charOff","charSet","checked","clear","colSpan","color","cols","compact","coords","dateTime","dir","encType","frame","hSpace","headers","height","hrefLang","htmlFor","id","isMap","itemProp","label","lang","maxLength","media","method","multiple","name","noHref","noShade","noWrap","open","prompt","readOnly","rev","rowSpan","rows","rules","scope","selected","shape","size","span","start","summary","tabIndex","title","useMap","vAlign","value","width"]},clobber:["ariaDescribedBy","ariaLabelledBy","id","name"],clobberPrefix:"user-content-",protocols:{cite:["http","https"],href:["http","https","irc","ircs","mailto","xmpp"],longDesc:["http","https"],src:["http","https"]},required:{input:{disabled:!0,type:"checkbox"}},strip:["script"],tagNames:["a","b","blockquote","br","code","dd","del","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","li","ol","p","picture","pre","q","rp","rt","ruby","s","samp","section","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","tt","ul","var"]},bn={}.hasOwnProperty;function nC(e,t){let n={type:"root",children:[]};const r={schema:t?{...oi,...t}:oi,stack:[]},s=wp(r,e);return s&&(Array.isArray(s)?s.length===1?n=s[0]:n.children=s:n=s),n}function wp(e,t){if(t&&typeof t=="object"){const n=t;switch(typeof n.type=="string"?n.type:""){case"comment":return rC(e,n);case"doctype":return iC(e,n);case"element":return sC(e,n);case"root":return aC(e,n);case"text":return oC(e,n)}}}function rC(e,t){if(e.schema.allowComments){const n=typeof t.value=="string"?t.value:"",r=n.indexOf("-->"),i={type:"comment",value:r<0?n:n.slice(0,r)};return Ni(i,t),i}}function iC(e,t){if(e.schema.allowDoctypes){const n={type:"doctype"};return Ni(n,t),n}}function sC(e,t){const n=typeof t.tagName=="string"?t.tagName:"";e.stack.push(n);const r=Sp(e,t.children),s=uC(e,t.properties);e.stack.pop();let i=!1;if(n&&n!=="*"&&(!e.schema.tagNames||e.schema.tagNames.includes(n))&&(i=!0,e.schema.ancestors&&bn.call(e.schema.ancestors,n))){const o=e.schema.ancestors[n];let u=-1;for(i=!1;++u<o.length;)e.stack.includes(o[u])&&(i=!0)}if(!i)return e.schema.strip&&!e.schema.strip.includes(n)?r:void 0;const a={type:"element",tagName:n,properties:s,children:r};return Ni(a,t),a}function aC(e,t){const r={type:"root",children:Sp(e,t.children)};return Ni(r,t),r}function oC(e,t){const r={type:"text",value:typeof t.value=="string"?t.value:""};return Ni(r,t),r}function Sp(e,t){const n=[];if(Array.isArray(t)){const r=t;let s=-1;for(;++s<r.length;){const i=wp(e,r[s]);i&&(Array.isArray(i)?n.push(...i):n.push(i))}}return n}function uC(e,t){const n=e.stack[e.stack.length-1],r=e.schema.attributes,s=e.schema.required,i=r&&bn.call(r,n)?r[n]:void 0,a=r&&bn.call(r,"*")?r["*"]:void 0,o=t&&typeof t=="object"?t:{},u={};let l;for(l in o)if(bn.call(o,l)){const c=o[l];let f=od(e,ud(i,l),l,c);f==null&&(f=od(e,ud(a,l),l,c)),f!=null&&(u[l]=f)}if(s&&bn.call(s,n)){const c=s[n];for(l in c)bn.call(c,l)&&!bn.call(u,l)&&(u[l]=c[l])}return u}function od(e,t,n,r){return t?Array.isArray(r)?lC(e,t,n,r):Ap(e,t,n,r):void 0}function lC(e,t,n,r){let s=-1;const i=[];for(;++s<r.length;){const a=Ap(e,t,n,r[s]);(typeof a=="number"||typeof a=="string")&&i.push(a)}return i}function Ap(e,t,n,r){if(!(typeof r!="boolean"&&typeof r!="number"&&typeof r!="string")&&cC(e,n,r)){if(typeof t=="object"&&t.length>1){let s=!1,i=0;for(;++i<t.length;){const a=t[i];if(a&&typeof a=="object"&&"flags"in a){if(a.test(String(r))){s=!0;break}}else if(a===r){s=!0;break}}if(!s)return}return e.schema.clobber&&e.schema.clobberPrefix&&e.schema.clobber.includes(n)?e.schema.clobberPrefix+r:r}}function cC(e,t,n){const r=e.schema.protocols&&bn.call(e.schema.protocols,t)?e.schema.protocols[t]:void 0;if(!r||r.length===0)return!0;const s=String(n),i=s.indexOf(":"),a=s.indexOf("?"),o=s.indexOf("#"),u=s.indexOf("/");if(i<0||u>-1&&i>u||a>-1&&i>a||o>-1&&i>o)return!0;let l=-1;for(;++l<r.length;){const c=r[l];if(i===c.length&&s.slice(0,c.length)===c)return!0}return!1}function Ni(e,t){const n=zh(t);t.data&&(e.data=Xn(t.data)),n&&(e.position=n)}function ud(e,t){let n,r=-1;if(e)for(;++r<e.length;){const s=e[r],i=typeof s=="string"?s:s[0];if(i===t)return s;i==="data*"&&(n=s)}if(t.length>4&&t.slice(0,4).toLowerCase()==="data")return n}function Cp(e){return function(t){return nC(t,e)}}var rh;const _p={...oi,protocols:{...oi.protocols,src:[...((rh=oi.protocols)==null?void 0:rh.src)??["http","https","mailto"],"data"]}},dC={remarkPlugins:[Um],rehypePlugins:[kp,[Cp,_p]]};let Qr=null,ld=null;function fC(){return Qr?Promise.resolve(Qr):(ld??(ld=Promise.all([Se(()=>import("./index-BLO7CDRf.js"),__vite__mapDeps([3,1,2]),import.meta.url),Se(()=>import("./index-CAFnQS2L.js"),__vite__mapDeps([4,1,2]),import.meta.url)]).then(([{default:e},{default:t}])=>(Qr={remarkPlugins:[Um,e],rehypePlugins:[kp,[Cp,_p],t]},Qr))),ld)}function hC(e){return e.includes("$")||e.includes("\\(")||e.includes("\\[")}function Ip(e){const[t,n]=w.useState(Qr),r=hC(e??"");return w.useEffect(()=>{if(!r||t)return;let s=!0;return fC().then(i=>{s&&n(i)}),()=>{s=!1}},[r,t]),t??dC}function mC({retry:e}){const t=Ge();return x.jsxs("div",{className:"text-body text-warning p-4 flex items-start gap-2",children:[x.jsx(ku,{className:"w-4 h-4 shrink-0 mt-0.5"}),x.jsxs("span",{children:[t("error.renderFailed")," ",x.jsx("button",{className:"underline ml-1",onClick:e,children:t("error.retry")})]})]})}class pC extends w.Component{constructor(){super(...arguments);ha(this,"state",{error:null});ha(this,"retry",()=>this.setState({error:null}))}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,r){console.error("[ErrorBoundary caught]",n,r.componentStack)}render(){return this.state.error?this.props.fallback?this.props.fallback(this.state.error,this.retry):x.jsx(mC,{error:this.state.error,retry:this.retry}):this.props.children}}function yi(e,t,n){const r=[];let s="";const i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(o){const u=o.parentElement;if(!u)return NodeFilter.FILTER_REJECT;const l=u.tagName;return l==="SCRIPT"||l==="STYLE"||u.closest(".katex-html")||u.closest(".katex-mathml")&&!u.closest("annotation")||!(n!=null&&n.includeMarks)&&u.closest("mark.lookatstudy-underline")||t&&!u.closest(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let a;for(;a=i.nextNode();){const o=a,u=o.textContent??"",l=s.length;s+=u,r.push({node:o,start:l,end:s.length})}return{text:s,nodes:r}}function Np(e,t){const n=cd(e.startContainer,e.startOffset,t,"start"),r=cd(e.endContainer,e.endOffset,t,"end");return n==null||r==null||r<=n?null:{start:n,end:r}}function cd(e,t,n,r){var s,i,a;if(e.nodeType===Node.TEXT_NODE){for(const o of n.nodes)if(o.node===e)return o.start+Math.min(t,((s=o.node.textContent)==null?void 0:s.length)??0);return r==="start"?((i=n.nodes[0])==null?void 0:i.start)??null:((a=n.nodes[n.nodes.length-1])==null?void 0:a.end)??null}if(e instanceof Element){const o=Array.from(e.childNodes);if(r==="end"){for(let l=t;l<o.length;l++){const c=Rp(o[l],n);if(c!=null)return c}const u=n.nodes[n.nodes.length-1];return u?u.end:null}else{for(let l=t;l>=0;l--){const c=Lp(o[l],n);if(c!=null)return c}const u=n.nodes[0];return u?u.start:null}}return null}function Rp(e,t){if(e.nodeType===Node.TEXT_NODE){for(const n of t.nodes)if(n.node===e)return n.start;return null}if(e instanceof Element)for(const n of e.childNodes){const r=Rp(n,t);if(r!=null)return r}return null}function Lp(e,t){if(e.nodeType===Node.TEXT_NODE){for(const n of t.nodes)if(n.node===e)return n.end;return null}if(e instanceof Element){let n=null;for(const r of e.childNodes){const s=Lp(r,t);s!=null&&(n=s)}return n}return null}function Mp(e,t,n){var o,u,l,c;if(n<=t)return null;let r=null,s=0,i=null,a=0;for(const f of e.nodes)if(!r&&t>=f.start&&t<f.end&&(r=f.node,s=t-f.start),!i&&n>f.start&&n<=f.end&&(i=f.node,a=n-f.start),r&&i)break;if(!r&&e.nodes.length>0){const f=e.nodes[e.nodes.length-1];r=f.node,s=((o=f.node.textContent)==null?void 0:o.length)??0}if(!i&&e.nodes.length>0){const f=e.nodes[e.nodes.length-1];i=f.node,a=((u=f.node.textContent)==null?void 0:u.length)??0}if(!r||!i)return null;try{const f=document.createRange();return f.setStart(r,Math.min(s,((l=r.textContent)==null?void 0:l.length)??0)),f.setEnd(i,Math.min(a,((c=i.textContent)==null?void 0:c.length)??0)),f}catch{return null}}function Pp(e,t){e.querySelectorAll("mark.lookatstudy-underline").forEach(i=>{const a=i.parentNode;if(a){for(;i.firstChild;)a.insertBefore(i.firstChild,i);a.removeChild(i)}}),e.normalize();const n=new Map;if(t.length===0)return n;const r=yi(e),s=[];for(const i of t){const a=gC(r.text,i.text,i.surrounding);a>=0&&s.push({noteId:i.noteId,start:a,end:a+i.text.length})}s.sort((i,a)=>a.start-i.start);for(const i of s){const a=Mp(r,i.start,i.end);if(!a)continue;const o=xC(a,i.noteId);o&&n.set(i.noteId,o)}return n}function gC(e,t,n){if(!t)return-1;let r=e.indexOf(t);if(r<0){const s=t.replace(/\s+/g," ").trim();if(r=e.replace(/\s+/g," ").indexOf(s),r<0)return-1;const a=t.slice(0,Math.min(15,t.length));return e.indexOf(a)}if(n&&n.length>5){const s=e.indexOf(n.slice(0,20));if(s>=0){let i=r,a=Math.abs(r-s),o=r+1;for(;;){const u=e.indexOf(t,o);if(u<0)break;const l=Math.abs(u-s);l<a&&(i=u,a=l),o=u+1}return i}}return r}function xC(e,t){const n="color: inherit; background: transparent; border-bottom: 2px solid rgb(34, 197, 94); padding-bottom: 1px;",r=document.createElement("mark");return r.className="lookatstudy-underline",r.dataset.noteId=t,r.style.cssText=n,Dp(e,r)}function Dp(e,t){var n;if(e.startContainer===e.endContainer&&e.startContainer.nodeType===Node.TEXT_NODE)try{return e.surroundContents(t),t}catch{}try{const r=[],s=document.createTreeWalker(e.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode(o){return e.intersectsNode(o)&&(o===e.startContainer||o===e.endContainer||e.intersectsNode(o))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let i;for(;i=s.nextNode();)r.push(i);if(r.length===0)return null;let a=null;for(const o of r){let u=o;if(o===e.startContainer&&e.startOffset>0&&(u=o.splitText(e.startOffset)),o===e.endContainer||u===e.endContainer){const c=u===e.endContainer?e.endOffset:e.endOffset-(o===e.startContainer?e.startOffset:0);c<u.textContent.length&&u.splitText(c)}if(!u.textContent)continue;const l=a?t.cloneNode(!1):t;(n=u.parentNode)==null||n.insertBefore(l,u),l.appendChild(u),a||(a=l)}return a}catch{return null}}const Op="cp-reading-mark",Fp="cp-reading";function Wn(e){var n;const t=CSS;try{(n=t.highlights)==null||n.delete(Fp)}catch{}Yu=null,e.querySelectorAll(`.${Op}`).forEach(r=>{const s=r.parentNode;if(s){for(;r.firstChild;)s.insertBefore(r.firstChild,r);s.removeChild(r)}}),e.normalize()}const bC=/[0-9A-Za-z\u00C0-\u024F\u0370-\u03FF\u0400-\u04FF\u4E00-\u9FFF\u3040-\u30FF\uAC00-\uD7AF]/,yC=`「『(([【<《"'“‘`,EC=`。』」))]】>》"'”’!!??…,,、;;::`;function Bp(e){const t=e.codePointAt(0);let n=e;return t>=65281&&t<=65374&&(n=String.fromCharCode(t-65248)),bC.test(n)?n.toLowerCase():null}function TC(e){let t="";const n=[];for(let r=0;r<e.length;r++){const s=Bp(e[r]);s!==null&&(t+=s,n.push(r))}return{canon:t,map:n}}function vC(e,t){if(t<=0)return 0;let n=0,r=e.length;for(;n<r;){const s=n+r>>1;e[s]<t?n=s+1:r=s}return n}function dd(e,t,n){const{canon:r,map:s}=TC(e),i=t.trim().split(/\s+/).map(m=>[...m].map(Bp).filter(Boolean).join("")).filter(m=>m.length>0);if(i.length===0||r.length===0){const m=t.trim();if(!m)return null;const p=e.indexOf(m,Math.max(0,n));return p>=0?{start:p,end:p+m.length}:null}const a=vC(s,Math.max(0,n)),o=i.join("");let u=-1,l=-1;const c=r.indexOf(o,a);if(c>=0)u=c,l=c+o.length-1;else{let m=a;for(const p of i){const g=r.indexOf(p,m);if(g<0)return null;u<0&&(u=g),l=g+p.length-1,m=l+1}if(u<0||l-u+1>o.length*3+40)return null}if(l>=s.length||u<0)return null;let f=s[u],h=s[l]+1;const d=n>0?n:0;for(let m=0;m<3&&f-1>=d&&yC.includes(e[f-1]);m++)f--;for(let m=0;m<4&&h<e.length&&EC.includes(e[h]);m++)h++;return{start:f,end:h}}const jo=new WeakMap;function jp(e){jo.delete(e)}function Hp(e,t,n){Wn(e);const r=t.trim();if(!r)return null;const s=yi(e,n==null?void 0:n.within,{includeMarks:!0}),i=jo.get(e)??0;let a=dd(s.text,r,i);if(!a&&i>0&&(a=dd(s.text,r,0)),!a)return null;jo.set(e,a.end);const o=Mp(s,a.start,a.end);if(!o)return null;const u=CSS;if(typeof Highlight<"u"&&u.highlights)try{return u.highlights.set(Fp,new Highlight(o)),Yu=o,o}catch{}const l=document.createElement("span");return l.className=Op,Dp(o,l)?o:null}let Yu=null;function kC(){return Yu}function Up(e,t){var a,o,u;const n=e.getClientRects(),r=n.length>0&&n[0].height>0?n[0]:(a=e.startContainer.parentElement??e.startContainer)==null?void 0:a.getBoundingClientRect();if(!r||r.height<=0)return;if(!t){(u=(o=e.startContainer.parentElement??e.startContainer)==null?void 0:o.scrollIntoView)==null||u.call(o,{behavior:"smooth",block:"center"});return}const s=t.getBoundingClientRect();if(r.top>=s.top+48&&r.bottom<=s.bottom-48)return;const i=t.scrollTop+(r.top+r.height/2)-(s.top+s.height/2);t.scrollTo({top:Math.max(0,i),behavior:"smooth"})}let cs=null,Ho=null;function wC(e){cs=e,Ho=(e==null?void 0:e.textContent)??null}function SC(){if(AC(cs))return cs;if(Ho){for(const e of document.querySelectorAll("mark.lookatstudy-underline"))if(e.textContent===Ho)return cs=e,e}return null}function AC(e){return!!e&&e.isConnected}function zp(e){e.scrollIntoView({behavior:"smooth",block:"center"}),e.style.transition="background 0.3s, border-bottom-color 0.3s, border-bottom-width 0.3s",e.style.background="rgba(250, 204, 21, 0.35)",e.style.borderBottom="4px solid rgb(34, 197, 94)",setTimeout(()=>{e.style.color="inherit",e.style.background="transparent",e.style.borderBottom="2px solid rgb(34, 197, 94)"},1500)}function Vp(e){const t=[];let n=!1;for(const r of e.split(`
441
+ `,t);return r===-1?n:n===-1||n+1===r?r:n<r?n:r}const jn={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Vm={}.hasOwnProperty,ew=Object.prototype;function tw(e,t){const n=t||{};return Uu({file:n.file||void 0,location:!1,schema:n.space==="svg"?Sn:Si,verbose:n.verbose||!1},e)}function Uu(e,t){let n;switch(t.nodeName){case"#comment":{const r=t;return n={type:"comment",value:r.data},us(e,r,n),n}case"#document":case"#document-fragment":{const r=t,s="mode"in r?r.mode==="quirks"||r.mode==="limited-quirks":!1;if(n={type:"root",children:qm(e,t.childNodes),data:{quirksMode:s}},e.file&&e.location){const i=String(e.file),a=Jk(i),o=a.toPoint(0),u=a.toPoint(i.length);n.position={start:o,end:u}}return n}case"#documentType":{const r=t;return n={type:"doctype"},us(e,r,n),n}case"#text":{const r=t;return n={type:"text",value:r.value},us(e,r,n),n}default:return n=nw(e,t),n}}function qm(e,t){let n=-1;const r=[];for(;++n<t.length;){const s=Uu(e,t[n]);r.push(s)}return r}function nw(e,t){const n=e.schema;e.schema=t.namespaceURI===jn.svg?Sn:Si;let r=-1;const s={};for(;++r<t.attrs.length;){const o=t.attrs[r],u=(o.prefix?o.prefix+":":"")+o.name;Vm.call(ew,u)||(s[u]=o.value)}const a=(e.schema.space==="svg"?Zk:Qk)(t.tagName,s,qm(e,t.childNodes));if(us(e,t,a),a.tagName==="template"){const o=t,u=o.sourceCodeLocation,l=u&&u.startTag&&mr(u.startTag),c=u&&u.endTag&&mr(u.endTag),f=Uu(e,o.content);l&&c&&e.file&&(f.position={start:l.end,end:c.start}),a.content=f}return e.schema=n,a}function us(e,t,n){if("sourceCodeLocation"in t&&t.sourceCodeLocation&&e.file){const r=rw(e,n,t.sourceCodeLocation);r&&(e.location=!0,n.position=r)}}function rw(e,t,n){const r=mr(n);if(t.type==="element"){const s=t.children[t.children.length-1];if(r&&!n.endTag&&s&&s.position&&s.position.end&&(r.end=Object.assign({},s.position.end)),e.verbose){const i={};let a;if(n.attrs)for(a in n.attrs)Vm.call(n.attrs,a)&&(i[Ws(e.schema,a).property]=mr(n.attrs[a]));n.startTag;const o=mr(n.startTag),u=n.endTag?mr(n.endTag):void 0,l={opening:o};u&&(l.closing=u),l.properties=i,t.data={position:l}}}return r}function mr(e){const t=Yc({line:e.startLine,column:e.startCol,offset:e.startOffset}),n=Yc({line:e.endLine,column:e.endCol,offset:e.endOffset});return t||n?{start:t,end:n}:void 0}function Yc(e){return e.line&&e.column?e:void 0}const iw={},sw={}.hasOwnProperty,$m=Tm("type",{handlers:{root:ow,element:fw,text:cw,comment:dw,doctype:lw}});function aw(e,t){const r=(t||iw).space;return $m(e,r==="svg"?Sn:Si)}function ow(e,t){const n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=zu(e.children,n,t),Cr(e,n),n}function uw(e,t){const n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=zu(e.children,n,t),Cr(e,n),n}function lw(e){const t={nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:null};return Cr(e,t),t}function cw(e){const t={nodeName:"#text",value:e.value,parentNode:null};return Cr(e,t),t}function dw(e){const t={nodeName:"#comment",data:e.value,parentNode:null};return Cr(e,t),t}function fw(e,t){const n=t;let r=n;e.type==="element"&&e.tagName.toLowerCase()==="svg"&&n.space==="html"&&(r=Sn);const s=[];let i;if(e.properties){for(i in e.properties)if(i!=="children"&&sw.call(e.properties,i)){const u=hw(r,i,e.properties[i]);u&&s.push(u)}}const a=r.space,o={nodeName:e.tagName,tagName:e.tagName,attrs:s,namespaceURI:jn[a],childNodes:[],parentNode:null};return o.childNodes=zu(e.children,o,r),Cr(e,o),e.tagName==="template"&&e.content&&(o.content=uw(e.content,r)),o}function hw(e,t,n){const r=Ws(e,t);if(n===!1||n===null||n===void 0||typeof n=="number"&&Number.isNaN(n)||!n&&r.boolean)return;Array.isArray(n)&&(n=r.commaSeparated?Lh(n):Hh(n));const s={name:r.attribute,value:n===!0?"":String(n)};if(r.space&&r.space!=="html"&&r.space!=="svg"){const i=s.name.indexOf(":");i<0?s.prefix="":(s.name=s.name.slice(i+1),s.prefix=r.attribute.slice(0,i)),s.namespace=jn[r.space]}return s}function zu(e,t,n){let r=-1;const s=[];if(e)for(;++r<e.length;){const i=$m(e[r],n);i.parentNode=t,s.push(i)}return s}function Cr(e,t){const n=e.position;n&&n.start&&n.end&&(n.start.offset,n.end.offset,t.sourceCodeLocation={startLine:n.start.line,startCol:n.start.column,startOffset:n.start.offset,endLine:n.end.line,endCol:n.end.column,endOffset:n.end.offset})}const mw=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"],pw=new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]),at="�";var O;(function(e){e[e.EOF=-1]="EOF",e[e.NULL=0]="NULL",e[e.TABULATION=9]="TABULATION",e[e.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",e[e.LINE_FEED=10]="LINE_FEED",e[e.FORM_FEED=12]="FORM_FEED",e[e.SPACE=32]="SPACE",e[e.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",e[e.QUOTATION_MARK=34]="QUOTATION_MARK",e[e.AMPERSAND=38]="AMPERSAND",e[e.APOSTROPHE=39]="APOSTROPHE",e[e.HYPHEN_MINUS=45]="HYPHEN_MINUS",e[e.SOLIDUS=47]="SOLIDUS",e[e.DIGIT_0=48]="DIGIT_0",e[e.DIGIT_9=57]="DIGIT_9",e[e.SEMICOLON=59]="SEMICOLON",e[e.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",e[e.EQUALS_SIGN=61]="EQUALS_SIGN",e[e.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",e[e.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",e[e.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",e[e.GRAVE_ACCENT=96]="GRAVE_ACCENT",e[e.LATIN_SMALL_A=97]="LATIN_SMALL_A",e[e.LATIN_SMALL_Z=122]="LATIN_SMALL_Z"})(O||(O={}));const _t={DASH_DASH:"--",CDATA_START:"[CDATA[",DOCTYPE:"doctype",SCRIPT:"script",PUBLIC:"public",SYSTEM:"system"};function Wm(e){return e>=55296&&e<=57343}function gw(e){return e>=56320&&e<=57343}function xw(e,t){return(e-55296)*1024+9216+t}function Ym(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function Gm(e){return e>=64976&&e<=65007||pw.has(e)}var Q;(function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(Q||(Q={}));const bw=65536;class yw{constructor(t){this.handler=t,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=bw,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(t,n){const{line:r,col:s,offset:i}=this,a=s+n,o=i+n;return{code:t,startLine:r,endLine:r,startCol:a,endCol:a,startOffset:o,endOffset:o}}_err(t){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(t,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(t){if(this.pos!==this.html.length-1){const n=this.html.charCodeAt(this.pos+1);if(gw(n))return this.pos++,this._addGap(),xw(t,n)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,O.EOF;return this._err(Q.surrogateInInputStream),t}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(t,n){this.html.length>0?this.html+=t:this.html=t,this.endOfChunkHit=!1,this.lastChunkWritten=n}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(t,n){if(this.pos+t.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(n)return this.html.startsWith(t,this.pos);for(let r=0;r<t.length;r++)if((this.html.charCodeAt(this.pos+r)|32)!==t.charCodeAt(r))return!1;return!0}peek(t){const n=this.pos+t;if(n>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,O.EOF;const r=this.html.charCodeAt(n);return r===O.CARRIAGE_RETURN?O.LINE_FEED:r}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,O.EOF;let t=this.html.charCodeAt(this.pos);return t===O.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,O.LINE_FEED):t===O.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,Wm(t)&&(t=this._processSurrogate(t)),this.handler.onParseError===null||t>31&&t<127||t===O.LINE_FEED||t===O.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t)}_checkForProblematicCharacters(t){Ym(t)?this._err(Q.controlCharacterInInputStream):Gm(t)&&this._err(Q.noncharacterInInputStream)}retreat(t){for(this.pos-=t;this.pos<this.lastGapPos;)this.lastGapPos=this.gapStack.pop(),this.pos--;this.isEol=!1}}var je;(function(e){e[e.CHARACTER=0]="CHARACTER",e[e.NULL_CHARACTER=1]="NULL_CHARACTER",e[e.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",e[e.START_TAG=3]="START_TAG",e[e.END_TAG=4]="END_TAG",e[e.COMMENT=5]="COMMENT",e[e.DOCTYPE=6]="DOCTYPE",e[e.EOF=7]="EOF",e[e.HIBERNATION=8]="HIBERNATION"})(je||(je={}));function Km(e,t){for(let n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null}const Ew=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),Tw=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function vw(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Tw.get(e))!==null&&t!==void 0?t:e}var xt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(xt||(xt={}));const kw=32;var yn;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(yn||(yn={}));function Do(e){return e>=xt.ZERO&&e<=xt.NINE}function ww(e){return e>=xt.UPPER_A&&e<=xt.UPPER_F||e>=xt.LOWER_A&&e<=xt.LOWER_F}function Sw(e){return e>=xt.UPPER_A&&e<=xt.UPPER_Z||e>=xt.LOWER_A&&e<=xt.LOWER_Z||Do(e)}function Aw(e){return e===xt.EQUALS||Sw(e)}var gt;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(gt||(gt={}));var dn;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(dn||(dn={}));class Cw{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=gt.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=dn.Strict}startEntity(t){this.decodeMode=t,this.state=gt.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case gt.EntityStart:return t.charCodeAt(n)===xt.NUM?(this.state=gt.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=gt.NamedEntity,this.stateNamedEntity(t,n));case gt.NumericStart:return this.stateNumericStart(t,n);case gt.NumericDecimal:return this.stateNumericDecimal(t,n);case gt.NumericHex:return this.stateNumericHex(t,n);case gt.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|kw)===xt.LOWER_X?(this.state=gt.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=gt.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,s){if(n!==r){const i=r-n;this.result=this.result*Math.pow(s,i)+Number.parseInt(t.substr(n,i),s),this.consumed+=i}}stateNumericHex(t,n){const r=n;for(;n<t.length;){const s=t.charCodeAt(n);if(Do(s)||ww(s))n+=1;else return this.addToNumericResult(t,r,n,16),this.emitNumericEntity(s,3)}return this.addToNumericResult(t,r,n,16),-1}stateNumericDecimal(t,n){const r=n;for(;n<t.length;){const s=t.charCodeAt(n);if(Do(s))n+=1;else return this.addToNumericResult(t,r,n,10),this.emitNumericEntity(s,2)}return this.addToNumericResult(t,r,n,10),-1}emitNumericEntity(t,n){var r;if(this.consumed<=n)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===xt.SEMI)this.consumed+=1;else if(this.decodeMode===dn.Strict)return 0;return this.emitCodePoint(vw(this.result),this.consumed),this.errors&&(t!==xt.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,n){const{decodeTree:r}=this;let s=r[this.treeIndex],i=(s&yn.VALUE_LENGTH)>>14;for(;n<t.length;n++,this.excess++){const a=t.charCodeAt(n);if(this.treeIndex=_w(r,s,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===dn.Attribute&&(i===0||Aw(a))?0:this.emitNotTerminatedNamedEntity();if(s=r[this.treeIndex],i=(s&yn.VALUE_LENGTH)>>14,i!==0){if(a===xt.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==dn.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,s=(r[n]&yn.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,s,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:s}=this;return this.emitCodePoint(n===1?s[t]&~yn.VALUE_LENGTH:s[t+1],r),n===3&&this.emitCodePoint(s[t+2],r),r}end(){var t;switch(this.state){case gt.NamedEntity:return this.result!==0&&(this.decodeMode!==dn.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case gt.NumericDecimal:return this.emitNumericEntity(0,2);case gt.NumericHex:return this.emitNumericEntity(0,3);case gt.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case gt.EntityStart:return 0}}}function _w(e,t,n,r){const s=(t&yn.BRANCH_LENGTH)>>7,i=t&yn.JUMP_TABLE;if(s===0)return i!==0&&r===i?n:-1;if(i){const u=r-i;return u<0||u>=s?-1:e[n+u]-1}let a=n,o=a+s-1;for(;a<=o;){const u=a+o>>>1,l=e[u];if(l<r)a=u+1;else if(l>r)o=u-1;else return e[u+s]}return-1}var ie;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"})(ie||(ie={}));var $n;(function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"})($n||($n={}));var Ht;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(Ht||(Ht={}));var Y;(function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SEARCH="search",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"})(Y||(Y={}));var b;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SEARCH=94]="SEARCH",e[e.SECTION=95]="SECTION",e[e.SELECT=96]="SELECT",e[e.SOURCE=97]="SOURCE",e[e.SMALL=98]="SMALL",e[e.SPAN=99]="SPAN",e[e.STRIKE=100]="STRIKE",e[e.STRONG=101]="STRONG",e[e.STYLE=102]="STYLE",e[e.SUB=103]="SUB",e[e.SUMMARY=104]="SUMMARY",e[e.SUP=105]="SUP",e[e.TABLE=106]="TABLE",e[e.TBODY=107]="TBODY",e[e.TEMPLATE=108]="TEMPLATE",e[e.TEXTAREA=109]="TEXTAREA",e[e.TFOOT=110]="TFOOT",e[e.TD=111]="TD",e[e.TH=112]="TH",e[e.THEAD=113]="THEAD",e[e.TITLE=114]="TITLE",e[e.TR=115]="TR",e[e.TRACK=116]="TRACK",e[e.TT=117]="TT",e[e.U=118]="U",e[e.UL=119]="UL",e[e.SVG=120]="SVG",e[e.VAR=121]="VAR",e[e.WBR=122]="WBR",e[e.XMP=123]="XMP"})(b||(b={}));const Iw=new Map([[Y.A,b.A],[Y.ADDRESS,b.ADDRESS],[Y.ANNOTATION_XML,b.ANNOTATION_XML],[Y.APPLET,b.APPLET],[Y.AREA,b.AREA],[Y.ARTICLE,b.ARTICLE],[Y.ASIDE,b.ASIDE],[Y.B,b.B],[Y.BASE,b.BASE],[Y.BASEFONT,b.BASEFONT],[Y.BGSOUND,b.BGSOUND],[Y.BIG,b.BIG],[Y.BLOCKQUOTE,b.BLOCKQUOTE],[Y.BODY,b.BODY],[Y.BR,b.BR],[Y.BUTTON,b.BUTTON],[Y.CAPTION,b.CAPTION],[Y.CENTER,b.CENTER],[Y.CODE,b.CODE],[Y.COL,b.COL],[Y.COLGROUP,b.COLGROUP],[Y.DD,b.DD],[Y.DESC,b.DESC],[Y.DETAILS,b.DETAILS],[Y.DIALOG,b.DIALOG],[Y.DIR,b.DIR],[Y.DIV,b.DIV],[Y.DL,b.DL],[Y.DT,b.DT],[Y.EM,b.EM],[Y.EMBED,b.EMBED],[Y.FIELDSET,b.FIELDSET],[Y.FIGCAPTION,b.FIGCAPTION],[Y.FIGURE,b.FIGURE],[Y.FONT,b.FONT],[Y.FOOTER,b.FOOTER],[Y.FOREIGN_OBJECT,b.FOREIGN_OBJECT],[Y.FORM,b.FORM],[Y.FRAME,b.FRAME],[Y.FRAMESET,b.FRAMESET],[Y.H1,b.H1],[Y.H2,b.H2],[Y.H3,b.H3],[Y.H4,b.H4],[Y.H5,b.H5],[Y.H6,b.H6],[Y.HEAD,b.HEAD],[Y.HEADER,b.HEADER],[Y.HGROUP,b.HGROUP],[Y.HR,b.HR],[Y.HTML,b.HTML],[Y.I,b.I],[Y.IMG,b.IMG],[Y.IMAGE,b.IMAGE],[Y.INPUT,b.INPUT],[Y.IFRAME,b.IFRAME],[Y.KEYGEN,b.KEYGEN],[Y.LABEL,b.LABEL],[Y.LI,b.LI],[Y.LINK,b.LINK],[Y.LISTING,b.LISTING],[Y.MAIN,b.MAIN],[Y.MALIGNMARK,b.MALIGNMARK],[Y.MARQUEE,b.MARQUEE],[Y.MATH,b.MATH],[Y.MENU,b.MENU],[Y.META,b.META],[Y.MGLYPH,b.MGLYPH],[Y.MI,b.MI],[Y.MO,b.MO],[Y.MN,b.MN],[Y.MS,b.MS],[Y.MTEXT,b.MTEXT],[Y.NAV,b.NAV],[Y.NOBR,b.NOBR],[Y.NOFRAMES,b.NOFRAMES],[Y.NOEMBED,b.NOEMBED],[Y.NOSCRIPT,b.NOSCRIPT],[Y.OBJECT,b.OBJECT],[Y.OL,b.OL],[Y.OPTGROUP,b.OPTGROUP],[Y.OPTION,b.OPTION],[Y.P,b.P],[Y.PARAM,b.PARAM],[Y.PLAINTEXT,b.PLAINTEXT],[Y.PRE,b.PRE],[Y.RB,b.RB],[Y.RP,b.RP],[Y.RT,b.RT],[Y.RTC,b.RTC],[Y.RUBY,b.RUBY],[Y.S,b.S],[Y.SCRIPT,b.SCRIPT],[Y.SEARCH,b.SEARCH],[Y.SECTION,b.SECTION],[Y.SELECT,b.SELECT],[Y.SOURCE,b.SOURCE],[Y.SMALL,b.SMALL],[Y.SPAN,b.SPAN],[Y.STRIKE,b.STRIKE],[Y.STRONG,b.STRONG],[Y.STYLE,b.STYLE],[Y.SUB,b.SUB],[Y.SUMMARY,b.SUMMARY],[Y.SUP,b.SUP],[Y.TABLE,b.TABLE],[Y.TBODY,b.TBODY],[Y.TEMPLATE,b.TEMPLATE],[Y.TEXTAREA,b.TEXTAREA],[Y.TFOOT,b.TFOOT],[Y.TD,b.TD],[Y.TH,b.TH],[Y.THEAD,b.THEAD],[Y.TITLE,b.TITLE],[Y.TR,b.TR],[Y.TRACK,b.TRACK],[Y.TT,b.TT],[Y.U,b.U],[Y.UL,b.UL],[Y.SVG,b.SVG],[Y.VAR,b.VAR],[Y.WBR,b.WBR],[Y.XMP,b.XMP]]);function _r(e){var t;return(t=Iw.get(e))!==null&&t!==void 0?t:b.UNKNOWN}const ae=b,Nw={[ie.HTML]:new Set([ae.ADDRESS,ae.APPLET,ae.AREA,ae.ARTICLE,ae.ASIDE,ae.BASE,ae.BASEFONT,ae.BGSOUND,ae.BLOCKQUOTE,ae.BODY,ae.BR,ae.BUTTON,ae.CAPTION,ae.CENTER,ae.COL,ae.COLGROUP,ae.DD,ae.DETAILS,ae.DIR,ae.DIV,ae.DL,ae.DT,ae.EMBED,ae.FIELDSET,ae.FIGCAPTION,ae.FIGURE,ae.FOOTER,ae.FORM,ae.FRAME,ae.FRAMESET,ae.H1,ae.H2,ae.H3,ae.H4,ae.H5,ae.H6,ae.HEAD,ae.HEADER,ae.HGROUP,ae.HR,ae.HTML,ae.IFRAME,ae.IMG,ae.INPUT,ae.LI,ae.LINK,ae.LISTING,ae.MAIN,ae.MARQUEE,ae.MENU,ae.META,ae.NAV,ae.NOEMBED,ae.NOFRAMES,ae.NOSCRIPT,ae.OBJECT,ae.OL,ae.P,ae.PARAM,ae.PLAINTEXT,ae.PRE,ae.SCRIPT,ae.SECTION,ae.SELECT,ae.SOURCE,ae.STYLE,ae.SUMMARY,ae.TABLE,ae.TBODY,ae.TD,ae.TEMPLATE,ae.TEXTAREA,ae.TFOOT,ae.TH,ae.THEAD,ae.TITLE,ae.TR,ae.TRACK,ae.UL,ae.WBR,ae.XMP]),[ie.MATHML]:new Set([ae.MI,ae.MO,ae.MN,ae.MS,ae.MTEXT,ae.ANNOTATION_XML]),[ie.SVG]:new Set([ae.TITLE,ae.FOREIGN_OBJECT,ae.DESC]),[ie.XLINK]:new Set,[ie.XML]:new Set,[ie.XMLNS]:new Set},Oo=new Set([ae.H1,ae.H2,ae.H3,ae.H4,ae.H5,ae.H6]);Y.STYLE,Y.SCRIPT,Y.XMP,Y.IFRAME,Y.NOEMBED,Y.NOFRAMES,Y.PLAINTEXT;var H;(function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(H||(H={}));const ft={DATA:H.DATA,RCDATA:H.RCDATA,RAWTEXT:H.RAWTEXT,SCRIPT_DATA:H.SCRIPT_DATA,PLAINTEXT:H.PLAINTEXT,CDATA_SECTION:H.CDATA_SECTION};function Rw(e){return e>=O.DIGIT_0&&e<=O.DIGIT_9}function Xr(e){return e>=O.LATIN_CAPITAL_A&&e<=O.LATIN_CAPITAL_Z}function Lw(e){return e>=O.LATIN_SMALL_A&&e<=O.LATIN_SMALL_Z}function pn(e){return Lw(e)||Xr(e)}function Gc(e){return pn(e)||Rw(e)}function Ki(e){return e+32}function Xm(e){return e===O.SPACE||e===O.LINE_FEED||e===O.TABULATION||e===O.FORM_FEED}function Kc(e){return Xm(e)||e===O.SOLIDUS||e===O.GREATER_THAN_SIGN}function Mw(e){return e===O.NULL?Q.nullCharacterReference:e>1114111?Q.characterReferenceOutsideUnicodeRange:Wm(e)?Q.surrogateCharacterReference:Gm(e)?Q.noncharacterCharacterReference:Ym(e)||e===O.CARRIAGE_RETURN?Q.controlCharacterReference:null}class Pw{constructor(t,n){this.options=t,this.handler=n,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=H.DATA,this.returnState=H.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new yw(n),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new Cw(Ew,(r,s)=>{this.preprocessor.pos=this.entityStartPos+s-1,this._flushCodePointConsumedAsCharacterReference(r)},n.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(Q.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:r=>{this._err(Q.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+r)},validateNumericCharacterReference:r=>{const s=Mw(r);s&&this._err(s,1)}}:void 0)}_err(t,n=0){var r,s;(s=(r=this.handler).onParseError)===null||s===void 0||s.call(r,this.preprocessor.getError(t,n))}getCurrentLocation(t){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-t,startOffset:this.preprocessor.offset-t,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this._callState(t)}this.inLoop=!1}}pause(){this.paused=!0}resume(t){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||t==null||t())}write(t,n,r){this.active=!0,this.preprocessor.write(t,n),this._runParsingLoop(),this.paused||r==null||r()}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(t){this.consumedAfterSnapshot+=t;for(let n=0;n<t;n++)this.preprocessor.advance()}_consumeSequenceIfMatch(t,n){return this.preprocessor.startsWith(t,n)?(this._advanceBy(t.length-1),!0):!1}_createStartTagToken(){this.currentToken={type:je.START_TAG,tagName:"",tagID:b.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(1)}}_createEndTagToken(){this.currentToken={type:je.END_TAG,tagName:"",tagID:b.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(2)}}_createCommentToken(t){this.currentToken={type:je.COMMENT,data:"",location:this.getCurrentLocation(t)}}_createDoctypeToken(t){this.currentToken={type:je.DOCTYPE,name:t,forceQuirks:!1,publicId:null,systemId:null,location:this.currentLocation}}_createCharacterToken(t,n){this.currentCharacterToken={type:t,chars:n,location:this.currentLocation}}_createAttr(t){this.currentAttr={name:t,value:""},this.currentLocation=this.getCurrentLocation(0)}_leaveAttrName(){var t,n;const r=this.currentToken;if(Km(r,this.currentAttr.name)===null){if(r.attrs.push(this.currentAttr),r.location&&this.currentLocation){const s=(t=(n=r.location).attrs)!==null&&t!==void 0?t:n.attrs=Object.create(null);s[this.currentAttr.name]=this.currentLocation,this._leaveAttrValue()}}else this._err(Q.duplicateAttribute)}_leaveAttrValue(){this.currentLocation&&(this.currentLocation.endLine=this.preprocessor.line,this.currentLocation.endCol=this.preprocessor.col,this.currentLocation.endOffset=this.preprocessor.offset)}prepareToken(t){this._emitCurrentCharacterToken(t.location),this.currentToken=null,t.location&&(t.location.endLine=this.preprocessor.line,t.location.endCol=this.preprocessor.col+1,t.location.endOffset=this.preprocessor.offset+1),this.currentLocation=this.getCurrentLocation(-1)}emitCurrentTagToken(){const t=this.currentToken;this.prepareToken(t),t.tagID=_r(t.tagName),t.type===je.START_TAG?(this.lastStartTagName=t.tagName,this.handler.onStartTag(t)):(t.attrs.length>0&&this._err(Q.endTagWithAttributes),t.selfClosing&&this._err(Q.endTagWithTrailingSolidus),this.handler.onEndTag(t)),this.preprocessor.dropParsedChunk()}emitCurrentComment(t){this.prepareToken(t),this.handler.onComment(t),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(t){this.prepareToken(t),this.handler.onDoctype(t),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(t){if(this.currentCharacterToken){switch(t&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=t.startLine,this.currentCharacterToken.location.endCol=t.startCol,this.currentCharacterToken.location.endOffset=t.startOffset),this.currentCharacterToken.type){case je.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case je.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case je.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const t=this.getCurrentLocation(0);t&&(t.endLine=t.startLine,t.endCol=t.startCol,t.endOffset=t.startOffset),this._emitCurrentCharacterToken(t),this.handler.onEof({type:je.EOF,location:t}),this.active=!1}_appendCharToCurrentCharacterToken(t,n){if(this.currentCharacterToken)if(this.currentCharacterToken.type===t){this.currentCharacterToken.chars+=n;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(t,n)}_emitCodePoint(t){const n=Xm(t)?je.WHITESPACE_CHARACTER:t===O.NULL?je.NULL_CHARACTER:je.CHARACTER;this._appendCharToCurrentCharacterToken(n,String.fromCodePoint(t))}_emitChars(t){this._appendCharToCurrentCharacterToken(je.CHARACTER,t)}_startCharacterReference(){this.returnState=this.state,this.state=H.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?dn.Attribute:dn.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===H.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===H.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===H.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(t){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(t):this._emitCodePoint(t)}_callState(t){switch(this.state){case H.DATA:{this._stateData(t);break}case H.RCDATA:{this._stateRcdata(t);break}case H.RAWTEXT:{this._stateRawtext(t);break}case H.SCRIPT_DATA:{this._stateScriptData(t);break}case H.PLAINTEXT:{this._statePlaintext(t);break}case H.TAG_OPEN:{this._stateTagOpen(t);break}case H.END_TAG_OPEN:{this._stateEndTagOpen(t);break}case H.TAG_NAME:{this._stateTagName(t);break}case H.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(t);break}case H.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(t);break}case H.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(t);break}case H.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(t);break}case H.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(t);break}case H.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(t);break}case H.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(t);break}case H.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(t);break}case H.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(t);break}case H.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(t);break}case H.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(t);break}case H.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(t);break}case H.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(t);break}case H.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(t);break}case H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(t);break}case H.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(t);break}case H.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(t);break}case H.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(t);break}case H.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(t);break}case H.ATTRIBUTE_NAME:{this._stateAttributeName(t);break}case H.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(t);break}case H.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(t);break}case H.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(t);break}case H.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(t);break}case H.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(t);break}case H.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(t);break}case H.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(t);break}case H.BOGUS_COMMENT:{this._stateBogusComment(t);break}case H.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(t);break}case H.COMMENT_START:{this._stateCommentStart(t);break}case H.COMMENT_START_DASH:{this._stateCommentStartDash(t);break}case H.COMMENT:{this._stateComment(t);break}case H.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(t);break}case H.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(t);break}case H.COMMENT_END_DASH:{this._stateCommentEndDash(t);break}case H.COMMENT_END:{this._stateCommentEnd(t);break}case H.COMMENT_END_BANG:{this._stateCommentEndBang(t);break}case H.DOCTYPE:{this._stateDoctype(t);break}case H.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(t);break}case H.DOCTYPE_NAME:{this._stateDoctypeName(t);break}case H.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(t);break}case H.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(t);break}case H.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(t);break}case H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(t);break}case H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(t);break}case H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(t);break}case H.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(t);break}case H.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(t);break}case H.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(t);break}case H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(t);break}case H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(t);break}case H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(t);break}case H.BOGUS_DOCTYPE:{this._stateBogusDoctype(t);break}case H.CDATA_SECTION:{this._stateCdataSection(t);break}case H.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(t);break}case H.CDATA_SECTION_END:{this._stateCdataSectionEnd(t);break}case H.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case H.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(t);break}default:throw new Error("Unknown state")}}_stateData(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.TAG_OPEN;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitCodePoint(t);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRcdata(t){switch(t){case O.AMPERSAND:{this._startCharacterReference();break}case O.LESS_THAN_SIGN:{this.state=H.RCDATA_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRawtext(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.RAWTEXT_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptData(t){switch(t){case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_statePlaintext(t){switch(t){case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateTagOpen(t){if(pn(t))this._createStartTagToken(),this.state=H.TAG_NAME,this._stateTagName(t);else switch(t){case O.EXCLAMATION_MARK:{this.state=H.MARKUP_DECLARATION_OPEN;break}case O.SOLIDUS:{this.state=H.END_TAG_OPEN;break}case O.QUESTION_MARK:{this._err(Q.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t);break}case O.EOF:{this._err(Q.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(Q.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=H.DATA,this._stateData(t)}}_stateEndTagOpen(t){if(pn(t))this._createEndTagToken(),this.state=H.TAG_NAME,this._stateTagName(t);else switch(t){case O.GREATER_THAN_SIGN:{this._err(Q.missingEndTagName),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken();break}default:this._err(Q.invalidFirstCharacterOfTagName),this._createCommentToken(2),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t)}}_stateTagName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.SOLIDUS:{this.state=H.SELF_CLOSING_START_TAG;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentTagToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.tagName+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:n.tagName+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateRcdataLessThanSign(t){t===O.SOLIDUS?this.state=H.RCDATA_END_TAG_OPEN:(this._emitChars("<"),this.state=H.RCDATA,this._stateRcdata(t))}_stateRcdataEndTagOpen(t){pn(t)?(this.state=H.RCDATA_END_TAG_NAME,this._stateRcdataEndTagName(t)):(this._emitChars("</"),this.state=H.RCDATA,this._stateRcdata(t))}handleSpecialEndTag(t){if(!this.preprocessor.startsWith(this.lastStartTagName,!1))return!this._ensureHibernation();this._createEndTagToken();const n=this.currentToken;switch(n.tagName=this.lastStartTagName,this.preprocessor.peek(this.lastStartTagName.length)){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:return this._advanceBy(this.lastStartTagName.length),this.state=H.BEFORE_ATTRIBUTE_NAME,!1;case O.SOLIDUS:return this._advanceBy(this.lastStartTagName.length),this.state=H.SELF_CLOSING_START_TAG,!1;case O.GREATER_THAN_SIGN:return this._advanceBy(this.lastStartTagName.length),this.emitCurrentTagToken(),this.state=H.DATA,!1;default:return!this._ensureHibernation()}}_stateRcdataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.RCDATA,this._stateRcdata(t))}_stateRawtextLessThanSign(t){t===O.SOLIDUS?this.state=H.RAWTEXT_END_TAG_OPEN:(this._emitChars("<"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagOpen(t){pn(t)?(this.state=H.RAWTEXT_END_TAG_NAME,this._stateRawtextEndTagName(t)):(this._emitChars("</"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.RAWTEXT,this._stateRawtext(t))}_stateScriptDataLessThanSign(t){switch(t){case O.SOLIDUS:{this.state=H.SCRIPT_DATA_END_TAG_OPEN;break}case O.EXCLAMATION_MARK:{this.state=H.SCRIPT_DATA_ESCAPE_START,this._emitChars("<!");break}default:this._emitChars("<"),this.state=H.SCRIPT_DATA,this._stateScriptData(t)}}_stateScriptDataEndTagOpen(t){pn(t)?(this.state=H.SCRIPT_DATA_END_TAG_NAME,this._stateScriptDataEndTagName(t)):(this._emitChars("</"),this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStart(t){t===O.HYPHEN_MINUS?(this.state=H.SCRIPT_DATA_ESCAPE_START_DASH,this._emitChars("-")):(this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStartDash(t){t===O.HYPHEN_MINUS?(this.state=H.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-")):(this.state=H.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscaped(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_ESCAPED_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataEscapedDash(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedDashDash(t){switch(t){case O.HYPHEN_MINUS:{this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case O.GREATER_THAN_SIGN:{this.state=H.SCRIPT_DATA,this._emitChars(">");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedLessThanSign(t){t===O.SOLIDUS?this.state=H.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:pn(t)?(this._emitChars("<"),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(t)):(this._emitChars("<"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagOpen(t){pn(t)?(this.state=H.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(t)):(this._emitChars("</"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscapeStart(t){if(this.preprocessor.startsWith(_t.SCRIPT,!1)&&Kc(this.preprocessor.peek(_t.SCRIPT.length))){this._emitCodePoint(t);for(let n=0;n<_t.SCRIPT.length;n++)this._emitCodePoint(this._consume());this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED}else this._ensureHibernation()||(this.state=H.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscaped(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDash(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDashDash(t){switch(t){case O.HYPHEN_MINUS:{this._emitChars("-");break}case O.LESS_THAN_SIGN:{this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case O.GREATER_THAN_SIGN:{this.state=H.SCRIPT_DATA,this._emitChars(">");break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(at);break}case O.EOF:{this._err(Q.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedLessThanSign(t){t===O.SOLIDUS?(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateScriptDataDoubleEscapeEnd(t){if(this.preprocessor.startsWith(_t.SCRIPT,!1)&&Kc(this.preprocessor.peek(_t.SCRIPT.length))){this._emitCodePoint(t);for(let n=0;n<_t.SCRIPT.length;n++)this._emitCodePoint(this._consume());this.state=H.SCRIPT_DATA_ESCAPED}else this._ensureHibernation()||(this.state=H.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateBeforeAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.SOLIDUS:case O.GREATER_THAN_SIGN:case O.EOF:{this.state=H.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case O.EQUALS_SIGN:{this._err(Q.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=H.ATTRIBUTE_NAME;break}default:this._createAttr(""),this.state=H.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:case O.SOLIDUS:case O.GREATER_THAN_SIGN:case O.EOF:{this._leaveAttrName(),this.state=H.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case O.EQUALS_SIGN:{this._leaveAttrName(),this.state=H.BEFORE_ATTRIBUTE_VALUE;break}case O.QUOTATION_MARK:case O.APOSTROPHE:case O.LESS_THAN_SIGN:{this._err(Q.unexpectedCharacterInAttributeName),this.currentAttr.name+=String.fromCodePoint(t);break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.name+=at;break}default:this.currentAttr.name+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateAfterAttributeName(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.SOLIDUS:{this.state=H.SELF_CLOSING_START_TAG;break}case O.EQUALS_SIGN:{this.state=H.BEFORE_ATTRIBUTE_VALUE;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._createAttr(""),this.state=H.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateBeforeAttributeValue(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{this.state=H.ATTRIBUTE_VALUE_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this.state=H.ATTRIBUTE_VALUE_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingAttributeValue),this.state=H.DATA,this.emitCurrentTagToken();break}default:this.state=H.ATTRIBUTE_VALUE_UNQUOTED,this._stateAttributeValueUnquoted(t)}}_stateAttributeValueDoubleQuoted(t){switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueSingleQuoted(t){switch(t){case O.APOSTROPHE:{this.state=H.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueUnquoted(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this._leaveAttrValue(),this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.AMPERSAND:{this._startCharacterReference();break}case O.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=H.DATA,this.emitCurrentTagToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),this.currentAttr.value+=at;break}case O.QUOTATION_MARK:case O.APOSTROPHE:case O.LESS_THAN_SIGN:case O.EQUALS_SIGN:case O.GRAVE_ACCENT:{this._err(Q.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=String.fromCodePoint(t);break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAfterAttributeValueQuoted(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this._leaveAttrValue(),this.state=H.BEFORE_ATTRIBUTE_NAME;break}case O.SOLIDUS:{this._leaveAttrValue(),this.state=H.SELF_CLOSING_START_TAG;break}case O.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._err(Q.missingWhitespaceBetweenAttributes),this.state=H.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateSelfClosingStartTag(t){switch(t){case O.GREATER_THAN_SIGN:{const n=this.currentToken;n.selfClosing=!0,this.state=H.DATA,this.emitCurrentTagToken();break}case O.EOF:{this._err(Q.eofInTag),this._emitEOFToken();break}default:this._err(Q.unexpectedSolidusInTag),this.state=H.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateBogusComment(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this.emitCurrentComment(n),this._emitEOFToken();break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.data+=at;break}default:n.data+=String.fromCodePoint(t)}}_stateMarkupDeclarationOpen(t){this._consumeSequenceIfMatch(_t.DASH_DASH,!0)?(this._createCommentToken(_t.DASH_DASH.length+1),this.state=H.COMMENT_START):this._consumeSequenceIfMatch(_t.DOCTYPE,!1)?(this.currentLocation=this.getCurrentLocation(_t.DOCTYPE.length+1),this.state=H.DOCTYPE):this._consumeSequenceIfMatch(_t.CDATA_START,!0)?this.inForeignNode?this.state=H.CDATA_SECTION:(this._err(Q.cdataInHtmlContent),this._createCommentToken(_t.CDATA_START.length+1),this.currentToken.data="[CDATA[",this.state=H.BOGUS_COMMENT):this._ensureHibernation()||(this._err(Q.incorrectlyOpenedComment),this._createCommentToken(2),this.state=H.BOGUS_COMMENT,this._stateBogusComment(t))}_stateCommentStart(t){switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_START_DASH;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptClosingOfEmptyComment),this.state=H.DATA;const n=this.currentToken;this.emitCurrentComment(n);break}default:this.state=H.COMMENT,this._stateComment(t)}}_stateCommentStartDash(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptClosingOfEmptyComment),this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="-",this.state=H.COMMENT,this._stateComment(t)}}_stateComment(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END_DASH;break}case O.LESS_THAN_SIGN:{n.data+="<",this.state=H.COMMENT_LESS_THAN_SIGN;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.data+=at;break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+=String.fromCodePoint(t)}}_stateCommentLessThanSign(t){const n=this.currentToken;switch(t){case O.EXCLAMATION_MARK:{n.data+="!",this.state=H.COMMENT_LESS_THAN_SIGN_BANG;break}case O.LESS_THAN_SIGN:{n.data+="<";break}default:this.state=H.COMMENT,this._stateComment(t)}}_stateCommentLessThanSignBang(t){t===O.HYPHEN_MINUS?this.state=H.COMMENT_LESS_THAN_SIGN_BANG_DASH:(this.state=H.COMMENT,this._stateComment(t))}_stateCommentLessThanSignBangDash(t){t===O.HYPHEN_MINUS?this.state=H.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:(this.state=H.COMMENT_END_DASH,this._stateCommentEndDash(t))}_stateCommentLessThanSignBangDashDash(t){t!==O.GREATER_THAN_SIGN&&t!==O.EOF&&this._err(Q.nestedComment),this.state=H.COMMENT_END,this._stateCommentEnd(t)}_stateCommentEndDash(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{this.state=H.COMMENT_END;break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="-",this.state=H.COMMENT,this._stateComment(t)}}_stateCommentEnd(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentComment(n);break}case O.EXCLAMATION_MARK:{this.state=H.COMMENT_END_BANG;break}case O.HYPHEN_MINUS:{n.data+="-";break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="--",this.state=H.COMMENT,this._stateComment(t)}}_stateCommentEndBang(t){const n=this.currentToken;switch(t){case O.HYPHEN_MINUS:{n.data+="--!",this.state=H.COMMENT_END_DASH;break}case O.GREATER_THAN_SIGN:{this._err(Q.incorrectlyClosedComment),this.state=H.DATA,this.emitCurrentComment(n);break}case O.EOF:{this._err(Q.eofInComment),this.emitCurrentComment(n),this._emitEOFToken();break}default:n.data+="--!",this.state=H.COMMENT,this._stateComment(t)}}_stateDoctype(t){switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this.state=H.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t);break}case O.EOF:{this._err(Q.eofInDoctype),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingWhitespaceBeforeDoctypeName),this.state=H.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t)}}_stateBeforeDoctypeName(t){if(Xr(t))this._createDoctypeToken(String.fromCharCode(Ki(t))),this.state=H.DOCTYPE_NAME;else switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.NULL:{this._err(Q.unexpectedNullCharacter),this._createDoctypeToken(at),this.state=H.DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeName),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),this._createDoctypeToken(null);const n=this.currentToken;n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._createDoctypeToken(String.fromCodePoint(t)),this.state=H.DOCTYPE_NAME}}_stateDoctypeName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.AFTER_DOCTYPE_NAME;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.name+=at;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.name+=String.fromCodePoint(Xr(t)?Ki(t):t)}}_stateAfterDoctypeName(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._consumeSequenceIfMatch(_t.PUBLIC,!1)?this.state=H.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._consumeSequenceIfMatch(_t.SYSTEM,!1)?this.state=H.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._ensureHibernation()||(this._err(Q.invalidCharacterSequenceAfterDoctypeName),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t))}}_stateAfterDoctypePublicKeyword(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceAfterDoctypePublicKeyword),n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceAfterDoctypePublicKeyword),n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypePublicIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.publicId="",this.state=H.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypePublicIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypePublicIdentifierDoubleQuoted(t){const n=this.currentToken;switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.publicId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypePublicIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.publicId+=String.fromCodePoint(t)}}_stateDoctypePublicIdentifierSingleQuoted(t){const n=this.currentToken;switch(t){case O.APOSTROPHE:{this.state=H.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.publicId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypePublicIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.publicId+=String.fromCodePoint(t)}}_stateAfterDoctypePublicIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;break}case O.GREATER_THAN_SIGN:{this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBetweenDoctypePublicAndSystemIdentifiers(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.QUOTATION_MARK:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateAfterDoctypeSystemKeyword(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:{this.state=H.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.QUOTATION_MARK:{this._err(Q.missingWhitespaceAfterDoctypeSystemKeyword),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{this._err(Q.missingWhitespaceAfterDoctypeSystemKeyword),n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypeSystemIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.QUOTATION_MARK:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case O.APOSTROPHE:{n.systemId="",this.state=H.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case O.GREATER_THAN_SIGN:{this._err(Q.missingDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.DATA,this.emitCurrentDoctype(n);break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.missingQuoteBeforeDoctypeSystemIdentifier),n.forceQuirks=!0,this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypeSystemIdentifierDoubleQuoted(t){const n=this.currentToken;switch(t){case O.QUOTATION_MARK:{this.state=H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.systemId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypeSystemIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.systemId+=String.fromCodePoint(t)}}_stateDoctypeSystemIdentifierSingleQuoted(t){const n=this.currentToken;switch(t){case O.APOSTROPHE:{this.state=H.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case O.NULL:{this._err(Q.unexpectedNullCharacter),n.systemId+=at;break}case O.GREATER_THAN_SIGN:{this._err(Q.abruptDoctypeSystemIdentifier),n.forceQuirks=!0,this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:n.systemId+=String.fromCodePoint(t)}}_stateAfterDoctypeSystemIdentifier(t){const n=this.currentToken;switch(t){case O.SPACE:case O.LINE_FEED:case O.TABULATION:case O.FORM_FEED:break;case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.EOF:{this._err(Q.eofInDoctype),n.forceQuirks=!0,this.emitCurrentDoctype(n),this._emitEOFToken();break}default:this._err(Q.unexpectedCharacterAfterDoctypeSystemIdentifier),this.state=H.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBogusDoctype(t){const n=this.currentToken;switch(t){case O.GREATER_THAN_SIGN:{this.emitCurrentDoctype(n),this.state=H.DATA;break}case O.NULL:{this._err(Q.unexpectedNullCharacter);break}case O.EOF:{this.emitCurrentDoctype(n),this._emitEOFToken();break}}}_stateCdataSection(t){switch(t){case O.RIGHT_SQUARE_BRACKET:{this.state=H.CDATA_SECTION_BRACKET;break}case O.EOF:{this._err(Q.eofInCdata),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateCdataSectionBracket(t){t===O.RIGHT_SQUARE_BRACKET?this.state=H.CDATA_SECTION_END:(this._emitChars("]"),this.state=H.CDATA_SECTION,this._stateCdataSection(t))}_stateCdataSectionEnd(t){switch(t){case O.GREATER_THAN_SIGN:{this.state=H.DATA;break}case O.RIGHT_SQUARE_BRACKET:{this._emitChars("]");break}default:this._emitChars("]]"),this.state=H.CDATA_SECTION,this._stateCdataSection(t)}}_stateCharacterReference(){let t=this.entityDecoder.write(this.preprocessor.html,this.preprocessor.pos);if(t<0)if(this.preprocessor.lastChunkWritten)t=this.entityDecoder.end();else{this.active=!1,this.preprocessor.pos=this.preprocessor.html.length-1,this.consumedAfterSnapshot=0,this.preprocessor.endOfChunkHit=!0;return}t===0?(this.preprocessor.pos=this.entityStartPos,this._flushCodePointConsumedAsCharacterReference(O.AMPERSAND),this.state=!this._isCharacterReferenceInAttribute()&&Gc(this.preprocessor.peek(1))?H.AMBIGUOUS_AMPERSAND:this.returnState):this.state=this.returnState}_stateAmbiguousAmpersand(t){Gc(t)?this._flushCodePointConsumedAsCharacterReference(t):(t===O.SEMICOLON&&this._err(Q.unknownNamedCharacterReference),this.state=this.returnState,this._callState(t))}}const Qm=new Set([b.DD,b.DT,b.LI,b.OPTGROUP,b.OPTION,b.P,b.RB,b.RP,b.RT,b.RTC]),Xc=new Set([...Qm,b.CAPTION,b.COLGROUP,b.TBODY,b.TD,b.TFOOT,b.TH,b.THEAD,b.TR]),Cs=new Set([b.APPLET,b.CAPTION,b.HTML,b.MARQUEE,b.OBJECT,b.TABLE,b.TD,b.TEMPLATE,b.TH]),Dw=new Set([...Cs,b.OL,b.UL]),Ow=new Set([...Cs,b.BUTTON]),Qc=new Set([b.ANNOTATION_XML,b.MI,b.MN,b.MO,b.MS,b.MTEXT]),Zc=new Set([b.DESC,b.FOREIGN_OBJECT,b.TITLE]),Fw=new Set([b.TR,b.TEMPLATE,b.HTML]),Bw=new Set([b.TBODY,b.TFOOT,b.THEAD,b.TEMPLATE,b.HTML]),jw=new Set([b.TABLE,b.TEMPLATE,b.HTML]),Hw=new Set([b.TD,b.TH]);class Uw{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(t,n,r){this.treeAdapter=n,this.handler=r,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=b.UNKNOWN,this.current=t}_indexOf(t){return this.items.lastIndexOf(t,this.stackTop)}_isInTemplate(){return this.currentTagId===b.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===ie.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(t,n){this.stackTop++,this.items[this.stackTop]=t,this.current=t,this.tagIDs[this.stackTop]=n,this.currentTagId=n,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(t,n,!0)}pop(){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!0)}replace(t,n){const r=this._indexOf(t);this.items[r]=n,r===this.stackTop&&(this.current=n)}insertAfter(t,n,r){const s=this._indexOf(t)+1;this.items.splice(s,0,n),this.tagIDs.splice(s,0,r),this.stackTop++,s===this.stackTop&&this._updateCurrentElement(),this.current&&this.currentTagId!==void 0&&this.handler.onItemPush(this.current,this.currentTagId,s===this.stackTop)}popUntilTagNamePopped(t){let n=this.stackTop+1;do n=this.tagIDs.lastIndexOf(t,n-1);while(n>0&&this.treeAdapter.getNamespaceURI(this.items[n])!==ie.HTML);this.shortenToLength(Math.max(n,0))}shortenToLength(t){for(;this.stackTop>=t;){const n=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(n,this.stackTop<t)}}popUntilElementPopped(t){const n=this._indexOf(t);this.shortenToLength(Math.max(n,0))}popUntilPopped(t,n){const r=this._indexOfTagNames(t,n);this.shortenToLength(Math.max(r,0))}popUntilNumberedHeaderPopped(){this.popUntilPopped(Oo,ie.HTML)}popUntilTableCellPopped(){this.popUntilPopped(Hw,ie.HTML)}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1)}_indexOfTagNames(t,n){for(let r=this.stackTop;r>=0;r--)if(t.has(this.tagIDs[r])&&this.treeAdapter.getNamespaceURI(this.items[r])===n)return r;return-1}clearBackTo(t,n){const r=this._indexOfTagNames(t,n);this.shortenToLength(r+1)}clearBackToTableContext(){this.clearBackTo(jw,ie.HTML)}clearBackToTableBodyContext(){this.clearBackTo(Bw,ie.HTML)}clearBackToTableRowContext(){this.clearBackTo(Fw,ie.HTML)}remove(t){const n=this._indexOf(t);n>=0&&(n===this.stackTop?this.pop():(this.items.splice(n,1),this.tagIDs.splice(n,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===b.BODY?this.items[1]:null}contains(t){return this._indexOf(t)>-1}getCommonAncestor(t){const n=this._indexOf(t)-1;return n>=0?this.items[n]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===b.HTML}hasInDynamicScope(t,n){for(let r=this.stackTop;r>=0;r--){const s=this.tagIDs[r];switch(this.treeAdapter.getNamespaceURI(this.items[r])){case ie.HTML:{if(s===t)return!0;if(n.has(s))return!1;break}case ie.SVG:{if(Zc.has(s))return!1;break}case ie.MATHML:{if(Qc.has(s))return!1;break}}}return!0}hasInScope(t){return this.hasInDynamicScope(t,Cs)}hasInListItemScope(t){return this.hasInDynamicScope(t,Dw)}hasInButtonScope(t){return this.hasInDynamicScope(t,Ow)}hasNumberedHeaderInScope(){for(let t=this.stackTop;t>=0;t--){const n=this.tagIDs[t];switch(this.treeAdapter.getNamespaceURI(this.items[t])){case ie.HTML:{if(Oo.has(n))return!0;if(Cs.has(n))return!1;break}case ie.SVG:{if(Zc.has(n))return!1;break}case ie.MATHML:{if(Qc.has(n))return!1;break}}}return!0}hasInTableScope(t){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===ie.HTML)switch(this.tagIDs[n]){case t:return!0;case b.TABLE:case b.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let t=this.stackTop;t>=0;t--)if(this.treeAdapter.getNamespaceURI(this.items[t])===ie.HTML)switch(this.tagIDs[t]){case b.TBODY:case b.THEAD:case b.TFOOT:return!0;case b.TABLE:case b.HTML:return!1}return!0}hasInSelectScope(t){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===ie.HTML)switch(this.tagIDs[n]){case t:return!0;case b.OPTION:case b.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;this.currentTagId!==void 0&&Qm.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;this.currentTagId!==void 0&&Xc.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(t){for(;this.currentTagId!==void 0&&this.currentTagId!==t&&Xc.has(this.currentTagId);)this.pop()}}const qa=3;var en;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(en||(en={}));const Jc={type:en.Marker};class zw{constructor(t){this.treeAdapter=t,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(t,n){const r=[],s=n.length,i=this.treeAdapter.getTagName(t),a=this.treeAdapter.getNamespaceURI(t);for(let o=0;o<this.entries.length;o++){const u=this.entries[o];if(u.type===en.Marker)break;const{element:l}=u;if(this.treeAdapter.getTagName(l)===i&&this.treeAdapter.getNamespaceURI(l)===a){const c=this.treeAdapter.getAttrList(l);c.length===s&&r.push({idx:o,attrs:c})}}return r}_ensureNoahArkCondition(t){if(this.entries.length<qa)return;const n=this.treeAdapter.getAttrList(t),r=this._getNoahArkConditionCandidates(t,n);if(r.length<qa)return;const s=new Map(n.map(a=>[a.name,a.value]));let i=0;for(let a=0;a<r.length;a++){const o=r[a];o.attrs.every(u=>s.get(u.name)===u.value)&&(i+=1,i>=qa&&this.entries.splice(o.idx,1))}}insertMarker(){this.entries.unshift(Jc)}pushElement(t,n){this._ensureNoahArkCondition(t),this.entries.unshift({type:en.Element,element:t,token:n})}insertElementAfterBookmark(t,n){const r=this.entries.indexOf(this.bookmark);this.entries.splice(r,0,{type:en.Element,element:t,token:n})}removeEntry(t){const n=this.entries.indexOf(t);n!==-1&&this.entries.splice(n,1)}clearToLastMarker(){const t=this.entries.indexOf(Jc);t===-1?this.entries.length=0:this.entries.splice(0,t+1)}getElementEntryInScopeWithTagName(t){const n=this.entries.find(r=>r.type===en.Marker||this.treeAdapter.getTagName(r.element)===t);return n&&n.type===en.Element?n:null}getElementEntry(t){return this.entries.find(n=>n.type===en.Element&&n.element===t)}}const gn={createDocument(){return{nodeName:"#document",mode:Ht.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},createCommentNode(e){return{nodeName:"#comment",data:e,parentNode:null}},createTextNode(e){return{nodeName:"#text",value:e,parentNode:null}},appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,n){const r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent(e){return e.content},setDocumentType(e,t,n,r){const s=e.childNodes.find(i=>i.nodeName==="#documentType");if(s)s.name=t,s.publicId=n,s.systemId=r;else{const i={nodeName:"#documentType",name:t,publicId:n,systemId:r,parentNode:null};gn.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode(e){return e.mode},detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){const n=e.childNodes[e.childNodes.length-1];if(gn.isTextNode(n)){n.value+=t;return}}gn.appendChild(e,gn.createTextNode(t))},insertTextBefore(e,t,n){const r=e.childNodes[e.childNodes.indexOf(n)-1];r&&gn.isTextNode(r)?r.value+=t:gn.insertBefore(e,gn.createTextNode(t),n)},adoptAttributes(e,t){const n=new Set(e.attrs.map(r=>r.name));for(let r=0;r<t.length;r++)n.has(t[r].name)||e.attrs.push(t[r])},getFirstChild(e){return e.childNodes[0]},getChildNodes(e){return e.childNodes},getParentNode(e){return e.parentNode},getAttrList(e){return e.attrs},getTagName(e){return e.tagName},getNamespaceURI(e){return e.namespaceURI},getTextNodeContent(e){return e.value},getCommentNodeContent(e){return e.data},getDocumentTypeNodeName(e){return e.name},getDocumentTypeNodePublicId(e){return e.publicId},getDocumentTypeNodeSystemId(e){return e.systemId},isTextNode(e){return e.nodeName==="#text"},isCommentNode(e){return e.nodeName==="#comment"},isDocumentTypeNode(e){return e.nodeName==="#documentType"},isElementNode(e){return Object.prototype.hasOwnProperty.call(e,"tagName")},setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation(e){return e.sourceCodeLocation},updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},Zm="html",Vw="about:legacy-compat",qw="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",Jm=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],$w=[...Jm,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],Ww=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),ep=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],Yw=[...ep,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function ed(e,t){return t.some(n=>e.startsWith(n))}function Gw(e){return e.name===Zm&&e.publicId===null&&(e.systemId===null||e.systemId===Vw)}function Kw(e){if(e.name!==Zm)return Ht.QUIRKS;const{systemId:t}=e;if(t&&t.toLowerCase()===qw)return Ht.QUIRKS;let{publicId:n}=e;if(n!==null){if(n=n.toLowerCase(),Ww.has(n))return Ht.QUIRKS;let r=t===null?$w:Jm;if(ed(n,r))return Ht.QUIRKS;if(r=t===null?ep:Yw,ed(n,r))return Ht.LIMITED_QUIRKS}return Ht.NO_QUIRKS}const td={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},Xw="definitionurl",Qw="definitionURL",Zw=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),Jw=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:ie.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:ie.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:ie.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:ie.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:ie.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:ie.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:ie.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:ie.XML}],["xml:space",{prefix:"xml",name:"space",namespace:ie.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:ie.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:ie.XMLNS}]]),eS=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),tS=new Set([b.B,b.BIG,b.BLOCKQUOTE,b.BODY,b.BR,b.CENTER,b.CODE,b.DD,b.DIV,b.DL,b.DT,b.EM,b.EMBED,b.H1,b.H2,b.H3,b.H4,b.H5,b.H6,b.HEAD,b.HR,b.I,b.IMG,b.LI,b.LISTING,b.MENU,b.META,b.NOBR,b.OL,b.P,b.PRE,b.RUBY,b.S,b.SMALL,b.SPAN,b.STRONG,b.STRIKE,b.SUB,b.SUP,b.TABLE,b.TT,b.U,b.UL,b.VAR]);function nS(e){const t=e.tagID;return t===b.FONT&&e.attrs.some(({name:r})=>r===$n.COLOR||r===$n.SIZE||r===$n.FACE)||tS.has(t)}function tp(e){for(let t=0;t<e.attrs.length;t++)if(e.attrs[t].name===Xw){e.attrs[t].name=Qw;break}}function np(e){for(let t=0;t<e.attrs.length;t++){const n=Zw.get(e.attrs[t].name);n!=null&&(e.attrs[t].name=n)}}function Vu(e){for(let t=0;t<e.attrs.length;t++){const n=Jw.get(e.attrs[t].name);n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}}function rS(e){const t=eS.get(e.tagName);t!=null&&(e.tagName=t,e.tagID=_r(e.tagName))}function iS(e,t){return t===ie.MATHML&&(e===b.MI||e===b.MO||e===b.MN||e===b.MS||e===b.MTEXT)}function sS(e,t,n){if(t===ie.MATHML&&e===b.ANNOTATION_XML){for(let r=0;r<n.length;r++)if(n[r].name===$n.ENCODING){const s=n[r].value.toLowerCase();return s===td.TEXT_HTML||s===td.APPLICATION_XML}}return t===ie.SVG&&(e===b.FOREIGN_OBJECT||e===b.DESC||e===b.TITLE)}function aS(e,t,n,r){return(!r||r===ie.HTML)&&sS(e,t,n)||(!r||r===ie.MATHML)&&iS(e,t)}const oS="hidden",uS=8,lS=3;var U;(function(e){e[e.INITIAL=0]="INITIAL",e[e.BEFORE_HTML=1]="BEFORE_HTML",e[e.BEFORE_HEAD=2]="BEFORE_HEAD",e[e.IN_HEAD=3]="IN_HEAD",e[e.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",e[e.AFTER_HEAD=5]="AFTER_HEAD",e[e.IN_BODY=6]="IN_BODY",e[e.TEXT=7]="TEXT",e[e.IN_TABLE=8]="IN_TABLE",e[e.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",e[e.IN_CAPTION=10]="IN_CAPTION",e[e.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",e[e.IN_TABLE_BODY=12]="IN_TABLE_BODY",e[e.IN_ROW=13]="IN_ROW",e[e.IN_CELL=14]="IN_CELL",e[e.IN_SELECT=15]="IN_SELECT",e[e.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",e[e.IN_TEMPLATE=17]="IN_TEMPLATE",e[e.AFTER_BODY=18]="AFTER_BODY",e[e.IN_FRAMESET=19]="IN_FRAMESET",e[e.AFTER_FRAMESET=20]="AFTER_FRAMESET",e[e.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",e[e.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET"})(U||(U={}));const cS={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},rp=new Set([b.TABLE,b.TBODY,b.TFOOT,b.THEAD,b.TR]),nd={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:gn,onParseError:null};class rd{constructor(t,n,r=null,s=null){this.fragmentContext=r,this.scriptHandler=s,this.currentToken=null,this.stopped=!1,this.insertionMode=U.INITIAL,this.originalInsertionMode=U.INITIAL,this.headElement=null,this.formElement=null,this.currentNotInHTML=!1,this.tmplInsertionModeStack=[],this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1,this.options={...nd,...t},this.treeAdapter=this.options.treeAdapter,this.onParseError=this.options.onParseError,this.onParseError&&(this.options.sourceCodeLocationInfo=!0),this.document=n??this.treeAdapter.createDocument(),this.tokenizer=new Pw(this.options,this),this.activeFormattingElements=new zw(this.treeAdapter),this.fragmentContextID=r?_r(this.treeAdapter.getTagName(r)):b.UNKNOWN,this._setContextModes(r??this.document,this.fragmentContextID),this.openElements=new Uw(this.document,this.treeAdapter,this)}static parse(t,n){const r=new this(n);return r.tokenizer.write(t,!0),r.document}static getFragmentParser(t,n){const r={...nd,...n};t??(t=r.treeAdapter.createElement(Y.TEMPLATE,ie.HTML,[]));const s=r.treeAdapter.createElement("documentmock",ie.HTML,[]),i=new this(r,s,t);return i.fragmentContextID===b.TEMPLATE&&i.tmplInsertionModeStack.unshift(U.IN_TEMPLATE),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),i}getFragment(){const t=this.treeAdapter.getFirstChild(this.document),n=this.treeAdapter.createDocumentFragment();return this._adoptNodes(t,n),n}_err(t,n,r){var s;if(!this.onParseError)return;const i=(s=t.location)!==null&&s!==void 0?s:cS,a={code:n,startLine:i.startLine,startCol:i.startCol,startOffset:i.startOffset,endLine:r?i.startLine:i.endLine,endCol:r?i.startCol:i.endCol,endOffset:r?i.startOffset:i.endOffset};this.onParseError(a)}onItemPush(t,n,r){var s,i;(i=(s=this.treeAdapter).onItemPush)===null||i===void 0||i.call(s,t),r&&this.openElements.stackTop>0&&this._setContextModes(t,n)}onItemPop(t,n){var r,s;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),(s=(r=this.treeAdapter).onItemPop)===null||s===void 0||s.call(r,t,this.openElements.current),n){let i,a;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,a=this.fragmentContextID):{current:i,currentTagId:a}=this.openElements,this._setContextModes(i,a)}}_setContextModes(t,n){const r=t===this.document||t&&this.treeAdapter.getNamespaceURI(t)===ie.HTML;this.currentNotInHTML=!r,this.tokenizer.inForeignNode=!r&&t!==void 0&&n!==void 0&&!this._isIntegrationPoint(n,t)}_switchToTextParsing(t,n){this._insertElement(t,ie.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=U.TEXT}switchToPlaintextParsing(){this.insertionMode=U.TEXT,this.originalInsertionMode=U.IN_BODY,this.tokenizer.state=ft.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===Y.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==ie.HTML))switch(this.fragmentContextID){case b.TITLE:case b.TEXTAREA:{this.tokenizer.state=ft.RCDATA;break}case b.STYLE:case b.XMP:case b.IFRAME:case b.NOEMBED:case b.NOFRAMES:case b.NOSCRIPT:{this.tokenizer.state=ft.RAWTEXT;break}case b.SCRIPT:{this.tokenizer.state=ft.SCRIPT_DATA;break}case b.PLAINTEXT:{this.tokenizer.state=ft.PLAINTEXT;break}}}_setDocumentType(t){const n=t.name||"",r=t.publicId||"",s=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,n,r,s),t.location){const a=this.treeAdapter.getChildNodes(this.document).find(o=>this.treeAdapter.isDocumentTypeNode(o));a&&this.treeAdapter.setNodeSourceCodeLocation(a,t.location)}}_attachElementToTree(t,n){if(this.options.sourceCodeLocationInfo){const r=n&&{...n,startTag:n};this.treeAdapter.setNodeSourceCodeLocation(t,r)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const r=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(r??this.document,t)}}_appendElement(t,n){const r=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(r,t.location)}_insertElement(t,n){const r=this.treeAdapter.createElement(t.tagName,n,t.attrs);this._attachElementToTree(r,t.location),this.openElements.push(r,t.tagID)}_insertFakeElement(t,n){const r=this.treeAdapter.createElement(t,ie.HTML,[]);this._attachElementToTree(r,null),this.openElements.push(r,n)}_insertTemplate(t){const n=this.treeAdapter.createElement(t.tagName,ie.HTML,t.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(n,r),this._attachElementToTree(n,t.location),this.openElements.push(n,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(Y.HTML,ie.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,b.HTML)}_appendCommentNode(t,n){const r=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(n,r),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,t.location)}_insertCharacters(t){let n,r;if(this._shouldFosterParentOnInsertion()?({parent:n,beforeElement:r}=this._findFosterParentingLocation(),r?this.treeAdapter.insertTextBefore(n,t.chars,r):this.treeAdapter.insertText(n,t.chars)):(n=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(n,t.chars)),!t.location)return;const s=this.treeAdapter.getChildNodes(n),i=r?s.lastIndexOf(r):s.length,a=s[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(a)){const{endLine:u,endCol:l,endOffset:c}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(a,{endLine:u,endCol:l,endOffset:c})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(a,t.location)}_adoptNodes(t,n){for(let r=this.treeAdapter.getFirstChild(t);r;r=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(r),this.treeAdapter.appendChild(n,r)}_setEndLocation(t,n){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&n.location){const r=n.location,s=this.treeAdapter.getTagName(t),i=n.type===je.END_TAG&&s===n.tagName?{endTag:{...r},endLine:r.endLine,endCol:r.endCol,endOffset:r.endOffset}:{endLine:r.startLine,endCol:r.startCol,endOffset:r.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let n,r;return this.openElements.stackTop===0&&this.fragmentContext?(n=this.fragmentContext,r=this.fragmentContextID):{current:n,currentTagId:r}=this.openElements,t.tagID===b.SVG&&this.treeAdapter.getTagName(n)===Y.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(n)===ie.MATHML?!1:this.tokenizer.inForeignNode||(t.tagID===b.MGLYPH||t.tagID===b.MALIGNMARK)&&r!==void 0&&!this._isIntegrationPoint(r,n,ie.HTML)}_processToken(t){switch(t.type){case je.CHARACTER:{this.onCharacter(t);break}case je.NULL_CHARACTER:{this.onNullCharacter(t);break}case je.COMMENT:{this.onComment(t);break}case je.DOCTYPE:{this.onDoctype(t);break}case je.START_TAG:{this._processStartTag(t);break}case je.END_TAG:{this.onEndTag(t);break}case je.EOF:{this.onEof(t);break}case je.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(t);break}}}_isIntegrationPoint(t,n,r){const s=this.treeAdapter.getNamespaceURI(n),i=this.treeAdapter.getAttrList(n);return aS(t,s,i,r)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const n=this.activeFormattingElements.entries.findIndex(s=>s.type===en.Marker||this.openElements.contains(s.element)),r=n===-1?t-1:n-1;for(let s=r;s>=0;s--){const i=this.activeFormattingElements.entries[s];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=U.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(b.P),this.openElements.popUntilTagNamePopped(b.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(t===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case b.TR:{this.insertionMode=U.IN_ROW;return}case b.TBODY:case b.THEAD:case b.TFOOT:{this.insertionMode=U.IN_TABLE_BODY;return}case b.CAPTION:{this.insertionMode=U.IN_CAPTION;return}case b.COLGROUP:{this.insertionMode=U.IN_COLUMN_GROUP;return}case b.TABLE:{this.insertionMode=U.IN_TABLE;return}case b.BODY:{this.insertionMode=U.IN_BODY;return}case b.FRAMESET:{this.insertionMode=U.IN_FRAMESET;return}case b.SELECT:{this._resetInsertionModeForSelect(t);return}case b.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case b.HTML:{this.insertionMode=this.headElement?U.AFTER_HEAD:U.BEFORE_HEAD;return}case b.TD:case b.TH:{if(t>0){this.insertionMode=U.IN_CELL;return}break}case b.HEAD:{if(t>0){this.insertionMode=U.IN_HEAD;return}break}}this.insertionMode=U.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let n=t-1;n>0;n--){const r=this.openElements.tagIDs[n];if(r===b.TEMPLATE)break;if(r===b.TABLE){this.insertionMode=U.IN_SELECT_IN_TABLE;return}}this.insertionMode=U.IN_SELECT}_isElementCausesFosterParenting(t){return rp.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this.openElements.currentTagId!==void 0&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const n=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case b.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(n)===ie.HTML)return{parent:this.treeAdapter.getTemplateContent(n),beforeElement:null};break}case b.TABLE:{const r=this.treeAdapter.getParentNode(n);return r?{parent:r,beforeElement:n}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,t,n.beforeElement):this.treeAdapter.appendChild(n.parent,t)}_isSpecialElement(t,n){const r=this.treeAdapter.getNamespaceURI(t);return Nw[r].has(n)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){HA(this,t);return}switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.IN_BODY:case U.IN_CAPTION:case U.IN_CELL:case U.IN_TEMPLATE:{sp(this,t);break}case U.TEXT:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:{this._insertCharacters(t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_TABLE_TEXT:{dp(this,t);break}case U.IN_COLUMN_GROUP:{_s(this,t);break}case U.AFTER_BODY:{Is(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){jA(this,t);return}switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.TEXT:{this._insertCharacters(t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_COLUMN_GROUP:{_s(this,t);break}case U.AFTER_BODY:{Is(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML){Fo(this,t);return}switch(this.insertionMode){case U.INITIAL:case U.BEFORE_HTML:case U.BEFORE_HEAD:case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:case U.IN_BODY:case U.IN_TABLE:case U.IN_CAPTION:case U.IN_COLUMN_GROUP:case U.IN_TABLE_BODY:case U.IN_ROW:case U.IN_CELL:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:case U.IN_TEMPLATE:case U.IN_FRAMESET:case U.AFTER_FRAMESET:{Fo(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.AFTER_BODY:{xS(this,t);break}case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{bS(this,t);break}}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case U.INITIAL:{yS(this,t);break}case U.BEFORE_HEAD:case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:{this._err(t,Q.misplacedDoctype);break}case U.IN_TABLE_TEXT:{qr(this,t);break}}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,Q.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?UA(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ES(this,t);break}case U.BEFORE_HEAD:{vS(this,t);break}case U.IN_HEAD:{Kt(this,t);break}case U.IN_HEAD_NO_SCRIPT:{SS(this,t);break}case U.AFTER_HEAD:{CS(this,t);break}case U.IN_BODY:{kt(this,t);break}case U.IN_TABLE:{vr(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_CAPTION:{kA(this,t);break}case U.IN_COLUMN_GROUP:{Wu(this,t);break}case U.IN_TABLE_BODY:{na(this,t);break}case U.IN_ROW:{ra(this,t);break}case U.IN_CELL:{AA(this,t);break}case U.IN_SELECT:{mp(this,t);break}case U.IN_SELECT_IN_TABLE:{_A(this,t);break}case U.IN_TEMPLATE:{NA(this,t);break}case U.AFTER_BODY:{LA(this,t);break}case U.IN_FRAMESET:{MA(this,t);break}case U.AFTER_FRAMESET:{DA(this,t);break}case U.AFTER_AFTER_BODY:{FA(this,t);break}case U.AFTER_AFTER_FRAMESET:{BA(this,t);break}}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?zA(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{TS(this,t);break}case U.BEFORE_HEAD:{kS(this,t);break}case U.IN_HEAD:{wS(this,t);break}case U.IN_HEAD_NO_SCRIPT:{AS(this,t);break}case U.AFTER_HEAD:{_S(this,t);break}case U.IN_BODY:{ta(this,t);break}case U.TEXT:{hA(this,t);break}case U.IN_TABLE:{bi(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_CAPTION:{wA(this,t);break}case U.IN_COLUMN_GROUP:{SA(this,t);break}case U.IN_TABLE_BODY:{Bo(this,t);break}case U.IN_ROW:{hp(this,t);break}case U.IN_CELL:{CA(this,t);break}case U.IN_SELECT:{pp(this,t);break}case U.IN_SELECT_IN_TABLE:{IA(this,t);break}case U.IN_TEMPLATE:{RA(this,t);break}case U.AFTER_BODY:{xp(this,t);break}case U.IN_FRAMESET:{PA(this,t);break}case U.AFTER_FRAMESET:{OA(this,t);break}case U.AFTER_AFTER_BODY:{ls(this,t);break}}}onEof(t){switch(this.insertionMode){case U.INITIAL:{Vr(this,t);break}case U.BEFORE_HTML:{ni(this,t);break}case U.BEFORE_HEAD:{ri(this,t);break}case U.IN_HEAD:{ii(this,t);break}case U.IN_HEAD_NO_SCRIPT:{si(this,t);break}case U.AFTER_HEAD:{ai(this,t);break}case U.IN_BODY:case U.IN_TABLE:case U.IN_CAPTION:case U.IN_COLUMN_GROUP:case U.IN_TABLE_BODY:case U.IN_ROW:case U.IN_CELL:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:{lp(this,t);break}case U.TEXT:{mA(this,t);break}case U.IN_TABLE_TEXT:{qr(this,t);break}case U.IN_TEMPLATE:{gp(this,t);break}case U.AFTER_BODY:case U.IN_FRAMESET:case U.AFTER_FRAMESET:case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{$u(this,t);break}}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===O.LINE_FEED)){if(t.chars.length===1)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(t);return}switch(this.insertionMode){case U.IN_HEAD:case U.IN_HEAD_NO_SCRIPT:case U.AFTER_HEAD:case U.TEXT:case U.IN_COLUMN_GROUP:case U.IN_SELECT:case U.IN_SELECT_IN_TABLE:case U.IN_FRAMESET:case U.AFTER_FRAMESET:{this._insertCharacters(t);break}case U.IN_BODY:case U.IN_CAPTION:case U.IN_CELL:case U.IN_TEMPLATE:case U.AFTER_BODY:case U.AFTER_AFTER_BODY:case U.AFTER_AFTER_FRAMESET:{ip(this,t);break}case U.IN_TABLE:case U.IN_TABLE_BODY:case U.IN_ROW:{$a(this,t);break}case U.IN_TABLE_TEXT:{cp(this,t);break}}}}function dS(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagID)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):up(e,t),n}function fS(e,t){let n=null,r=e.openElements.stackTop;for(;r>=0;r--){const s=e.openElements.items[r];if(s===t.element)break;e._isSpecialElement(s,e.openElements.tagIDs[r])&&(n=s)}return n||(e.openElements.shortenToLength(Math.max(r,0)),e.activeFormattingElements.removeEntry(t)),n}function hS(e,t,n){let r=t,s=e.openElements.getCommonAncestor(t);for(let i=0,a=s;a!==n;i++,a=s){s=e.openElements.getCommonAncestor(a);const o=e.activeFormattingElements.getElementEntry(a),u=o&&i>=lS;!o||u?(u&&e.activeFormattingElements.removeEntry(o),e.openElements.remove(a)):(a=mS(e,o),r===t&&(e.activeFormattingElements.bookmark=o),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(a,r),r=a)}return r}function mS(e,t){const n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function pS(e,t,n){const r=e.treeAdapter.getTagName(t),s=_r(r);if(e._isElementCausesFosterParenting(s))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(t);s===b.TEMPLATE&&i===ie.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function gS(e,t,n){const r=e.treeAdapter.getNamespaceURI(n.element),{token:s}=n,i=e.treeAdapter.createElement(s.tagName,r,s.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,s),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i,s.tagID)}function qu(e,t){for(let n=0;n<uS;n++){const r=dS(e,t);if(!r)break;const s=fS(e,r);if(!s)break;e.activeFormattingElements.bookmark=r;const i=hS(e,s,r.element),a=e.openElements.getCommonAncestor(r.element);e.treeAdapter.detachNode(i),a&&pS(e,a,i),gS(e,s,r)}}function Fo(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function xS(e,t){e._appendCommentNode(t,e.openElements.items[0])}function bS(e,t){e._appendCommentNode(t,e.document)}function $u(e,t){if(e.stopped=!0,t.location){const n=e.fragmentContext?0:2;for(let r=e.openElements.stackTop;r>=n;r--)e._setEndLocation(e.openElements.items[r],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const r=e.openElements.items[0],s=e.treeAdapter.getNodeSourceCodeLocation(r);if(s&&!s.endTag&&(e._setEndLocation(r,t),e.openElements.stackTop>=1)){const i=e.openElements.items[1],a=e.treeAdapter.getNodeSourceCodeLocation(i);a&&!a.endTag&&e._setEndLocation(i,t)}}}}function yS(e,t){e._setDocumentType(t);const n=t.forceQuirks?Ht.QUIRKS:Kw(t);Gw(t)||e._err(t,Q.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=U.BEFORE_HTML}function Vr(e,t){e._err(t,Q.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Ht.QUIRKS),e.insertionMode=U.BEFORE_HTML,e._processToken(t)}function ES(e,t){t.tagID===b.HTML?(e._insertElement(t,ie.HTML),e.insertionMode=U.BEFORE_HEAD):ni(e,t)}function TS(e,t){const n=t.tagID;(n===b.HTML||n===b.HEAD||n===b.BODY||n===b.BR)&&ni(e,t)}function ni(e,t){e._insertFakeRootElement(),e.insertionMode=U.BEFORE_HEAD,e._processToken(t)}function vS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.HEAD:{e._insertElement(t,ie.HTML),e.headElement=e.openElements.current,e.insertionMode=U.IN_HEAD;break}default:ri(e,t)}}function kS(e,t){const n=t.tagID;n===b.HEAD||n===b.BODY||n===b.HTML||n===b.BR?ri(e,t):e._err(t,Q.endTagWithoutMatchingOpenElement)}function ri(e,t){e._insertFakeElement(Y.HEAD,b.HEAD),e.headElement=e.openElements.current,e.insertionMode=U.IN_HEAD,e._processToken(t)}function Kt(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.TITLE:{e._switchToTextParsing(t,ft.RCDATA);break}case b.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(t,ft.RAWTEXT):(e._insertElement(t,ie.HTML),e.insertionMode=U.IN_HEAD_NO_SCRIPT);break}case b.NOFRAMES:case b.STYLE:{e._switchToTextParsing(t,ft.RAWTEXT);break}case b.SCRIPT:{e._switchToTextParsing(t,ft.SCRIPT_DATA);break}case b.TEMPLATE:{e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=U.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(U.IN_TEMPLATE);break}case b.HEAD:{e._err(t,Q.misplacedStartTagForHeadElement);break}default:ii(e,t)}}function wS(e,t){switch(t.tagID){case b.HEAD:{e.openElements.pop(),e.insertionMode=U.AFTER_HEAD;break}case b.BODY:case b.BR:case b.HTML:{ii(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function Zn(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==b.TEMPLATE&&e._err(t,Q.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,Q.endTagWithoutMatchingOpenElement)}function ii(e,t){e.openElements.pop(),e.insertionMode=U.AFTER_HEAD,e._processToken(t)}function SS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BASEFONT:case b.BGSOUND:case b.HEAD:case b.LINK:case b.META:case b.NOFRAMES:case b.STYLE:{Kt(e,t);break}case b.NOSCRIPT:{e._err(t,Q.nestedNoscriptInHead);break}default:si(e,t)}}function AS(e,t){switch(t.tagID){case b.NOSCRIPT:{e.openElements.pop(),e.insertionMode=U.IN_HEAD;break}case b.BR:{si(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function si(e,t){const n=t.type===je.EOF?Q.openElementsLeftAfterEof:Q.disallowedContentInNoscriptInHead;e._err(t,n),e.openElements.pop(),e.insertionMode=U.IN_HEAD,e._processToken(t)}function CS(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.BODY:{e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=U.IN_BODY;break}case b.FRAMESET:{e._insertElement(t,ie.HTML),e.insertionMode=U.IN_FRAMESET;break}case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:case b.NOFRAMES:case b.SCRIPT:case b.STYLE:case b.TEMPLATE:case b.TITLE:{e._err(t,Q.abandonedHeadElementChild),e.openElements.push(e.headElement,b.HEAD),Kt(e,t),e.openElements.remove(e.headElement);break}case b.HEAD:{e._err(t,Q.misplacedStartTagForHeadElement);break}default:ai(e,t)}}function _S(e,t){switch(t.tagID){case b.BODY:case b.HTML:case b.BR:{ai(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:e._err(t,Q.endTagWithoutMatchingOpenElement)}}function ai(e,t){e._insertFakeElement(Y.BODY,b.BODY),e.insertionMode=U.IN_BODY,ea(e,t)}function ea(e,t){switch(t.type){case je.CHARACTER:{sp(e,t);break}case je.WHITESPACE_CHARACTER:{ip(e,t);break}case je.COMMENT:{Fo(e,t);break}case je.START_TAG:{kt(e,t);break}case je.END_TAG:{ta(e,t);break}case je.EOF:{lp(e,t);break}}}function ip(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function sp(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function IS(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function NS(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}function RS(e,t){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_FRAMESET)}function LS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML)}function MS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e.openElements.currentTagId!==void 0&&Oo.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,ie.HTML)}function PS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function DS(e,t){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),n||(e.formElement=e.openElements.current))}function OS(e,t){e.framesetOk=!1;const n=t.tagID;for(let r=e.openElements.stackTop;r>=0;r--){const s=e.openElements.tagIDs[r];if(n===b.LI&&s===b.LI||(n===b.DD||n===b.DT)&&(s===b.DD||s===b.DT)){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(s!==b.ADDRESS&&s!==b.DIV&&s!==b.P&&e._isSpecialElement(e.openElements.items[r],s))break}e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML)}function FS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.tokenizer.state=ft.PLAINTEXT}function BS(e,t){e.openElements.hasInScope(b.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.framesetOk=!1}function jS(e,t){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(Y.A);n&&(qu(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function HS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function US(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(b.NOBR)&&(qu(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,ie.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function zS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function VS(e,t){e.treeAdapter.getDocumentMode(e.document)!==Ht.QUIRKS&&e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=U.IN_TABLE}function ap(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ie.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function op(e){const t=Km(e,$n.TYPE);return t!=null&&t.toLowerCase()===oS}function qS(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,ie.HTML),op(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}function $S(e,t){e._appendElement(t,ie.HTML),t.ackSelfClosing=!0}function WS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._appendElement(t,ie.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function YS(e,t){t.tagName=Y.IMG,t.tagID=b.IMG,ap(e,t)}function GS(e,t){e._insertElement(t,ie.HTML),e.skipNextNewLine=!0,e.tokenizer.state=ft.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=U.TEXT}function KS(e,t){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,ft.RAWTEXT)}function XS(e,t){e.framesetOk=!1,e._switchToTextParsing(t,ft.RAWTEXT)}function id(e,t){e._switchToTextParsing(t,ft.RAWTEXT)}function QS(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===U.IN_TABLE||e.insertionMode===U.IN_CAPTION||e.insertionMode===U.IN_TABLE_BODY||e.insertionMode===U.IN_ROW||e.insertionMode===U.IN_CELL?U.IN_SELECT_IN_TABLE:U.IN_SELECT}function ZS(e,t){e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML)}function JS(e,t){e.openElements.hasInScope(b.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,ie.HTML)}function eA(e,t){e.openElements.hasInScope(b.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(b.RTC),e._insertElement(t,ie.HTML)}function tA(e,t){e._reconstructActiveFormattingElements(),tp(t),Vu(t),t.selfClosing?e._appendElement(t,ie.MATHML):e._insertElement(t,ie.MATHML),t.ackSelfClosing=!0}function nA(e,t){e._reconstructActiveFormattingElements(),np(t),Vu(t),t.selfClosing?e._appendElement(t,ie.SVG):e._insertElement(t,ie.SVG),t.ackSelfClosing=!0}function sd(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,ie.HTML)}function kt(e,t){switch(t.tagID){case b.I:case b.S:case b.B:case b.U:case b.EM:case b.TT:case b.BIG:case b.CODE:case b.FONT:case b.SMALL:case b.STRIKE:case b.STRONG:{HS(e,t);break}case b.A:{jS(e,t);break}case b.H1:case b.H2:case b.H3:case b.H4:case b.H5:case b.H6:{MS(e,t);break}case b.P:case b.DL:case b.OL:case b.UL:case b.DIV:case b.DIR:case b.NAV:case b.MAIN:case b.MENU:case b.ASIDE:case b.CENTER:case b.FIGURE:case b.FOOTER:case b.HEADER:case b.HGROUP:case b.DIALOG:case b.DETAILS:case b.ADDRESS:case b.ARTICLE:case b.SEARCH:case b.SECTION:case b.SUMMARY:case b.FIELDSET:case b.BLOCKQUOTE:case b.FIGCAPTION:{LS(e,t);break}case b.LI:case b.DD:case b.DT:{OS(e,t);break}case b.BR:case b.IMG:case b.WBR:case b.AREA:case b.EMBED:case b.KEYGEN:{ap(e,t);break}case b.HR:{WS(e,t);break}case b.RB:case b.RTC:{JS(e,t);break}case b.RT:case b.RP:{eA(e,t);break}case b.PRE:case b.LISTING:{PS(e,t);break}case b.XMP:{KS(e,t);break}case b.SVG:{nA(e,t);break}case b.HTML:{IS(e,t);break}case b.BASE:case b.LINK:case b.META:case b.STYLE:case b.TITLE:case b.SCRIPT:case b.BGSOUND:case b.BASEFONT:case b.TEMPLATE:{Kt(e,t);break}case b.BODY:{NS(e,t);break}case b.FORM:{DS(e,t);break}case b.NOBR:{US(e,t);break}case b.MATH:{tA(e,t);break}case b.TABLE:{VS(e,t);break}case b.INPUT:{qS(e,t);break}case b.PARAM:case b.TRACK:case b.SOURCE:{$S(e,t);break}case b.IMAGE:{YS(e,t);break}case b.BUTTON:{BS(e,t);break}case b.APPLET:case b.OBJECT:case b.MARQUEE:{zS(e,t);break}case b.IFRAME:{XS(e,t);break}case b.SELECT:{QS(e,t);break}case b.OPTION:case b.OPTGROUP:{ZS(e,t);break}case b.NOEMBED:case b.NOFRAMES:{id(e,t);break}case b.FRAMESET:{RS(e,t);break}case b.TEXTAREA:{GS(e,t);break}case b.NOSCRIPT:{e.options.scriptingEnabled?id(e,t):sd(e,t);break}case b.PLAINTEXT:{FS(e,t);break}case b.COL:case b.TH:case b.TD:case b.TR:case b.HEAD:case b.FRAME:case b.TBODY:case b.TFOOT:case b.THEAD:case b.CAPTION:case b.COLGROUP:break;default:sd(e,t)}}function rA(e,t){if(e.openElements.hasInScope(b.BODY)&&(e.insertionMode=U.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,t)}}function iA(e,t){e.openElements.hasInScope(b.BODY)&&(e.insertionMode=U.AFTER_BODY,xp(e,t))}function sA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function aA(e){const t=e.openElements.tmplCount>0,{formElement:n}=e;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(b.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(b.FORM):n&&e.openElements.remove(n))}function oA(e){e.openElements.hasInButtonScope(b.P)||e._insertFakeElement(Y.P,b.P),e._closePElement()}function uA(e){e.openElements.hasInListItemScope(b.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(b.LI),e.openElements.popUntilTagNamePopped(b.LI))}function lA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function cA(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function dA(e,t){const n=t.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function fA(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(Y.BR,b.BR),e.openElements.pop(),e.framesetOk=!1}function up(e,t){const n=t.tagName,r=t.tagID;for(let s=e.openElements.stackTop;s>0;s--){const i=e.openElements.items[s],a=e.openElements.tagIDs[s];if(r===a&&(r!==b.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.stackTop>=s&&e.openElements.shortenToLength(s);break}if(e._isSpecialElement(i,a))break}}function ta(e,t){switch(t.tagID){case b.A:case b.B:case b.I:case b.S:case b.U:case b.EM:case b.TT:case b.BIG:case b.CODE:case b.FONT:case b.NOBR:case b.SMALL:case b.STRIKE:case b.STRONG:{qu(e,t);break}case b.P:{oA(e);break}case b.DL:case b.UL:case b.OL:case b.DIR:case b.DIV:case b.NAV:case b.PRE:case b.MAIN:case b.MENU:case b.ASIDE:case b.BUTTON:case b.CENTER:case b.FIGURE:case b.FOOTER:case b.HEADER:case b.HGROUP:case b.DIALOG:case b.ADDRESS:case b.ARTICLE:case b.DETAILS:case b.SEARCH:case b.SECTION:case b.SUMMARY:case b.LISTING:case b.FIELDSET:case b.BLOCKQUOTE:case b.FIGCAPTION:{sA(e,t);break}case b.LI:{uA(e);break}case b.DD:case b.DT:{lA(e,t);break}case b.H1:case b.H2:case b.H3:case b.H4:case b.H5:case b.H6:{cA(e);break}case b.BR:{fA(e);break}case b.BODY:{rA(e,t);break}case b.HTML:{iA(e,t);break}case b.FORM:{aA(e);break}case b.APPLET:case b.OBJECT:case b.MARQUEE:{dA(e,t);break}case b.TEMPLATE:{Zn(e,t);break}default:up(e,t)}}function lp(e,t){e.tmplInsertionModeStack.length>0?gp(e,t):$u(e,t)}function hA(e,t){var n;t.tagID===b.SCRIPT&&((n=e.scriptHandler)===null||n===void 0||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function mA(e,t){e._err(t,Q.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}function $a(e,t){if(e.openElements.currentTagId!==void 0&&rp.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=U.IN_TABLE_TEXT,t.type){case je.CHARACTER:{dp(e,t);break}case je.WHITESPACE_CHARACTER:{cp(e,t);break}}else _i(e,t)}function pA(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_CAPTION}function gA(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_COLUMN_GROUP}function xA(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Y.COLGROUP,b.COLGROUP),e.insertionMode=U.IN_COLUMN_GROUP,Wu(e,t)}function bA(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_TABLE_BODY}function yA(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(Y.TBODY,b.TBODY),e.insertionMode=U.IN_TABLE_BODY,na(e,t)}function EA(e,t){e.openElements.hasInTableScope(b.TABLE)&&(e.openElements.popUntilTagNamePopped(b.TABLE),e._resetInsertionMode(),e._processStartTag(t))}function TA(e,t){op(t)?e._appendElement(t,ie.HTML):_i(e,t),t.ackSelfClosing=!0}function vA(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,ie.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function vr(e,t){switch(t.tagID){case b.TD:case b.TH:case b.TR:{yA(e,t);break}case b.STYLE:case b.SCRIPT:case b.TEMPLATE:{Kt(e,t);break}case b.COL:{xA(e,t);break}case b.FORM:{vA(e,t);break}case b.TABLE:{EA(e,t);break}case b.TBODY:case b.TFOOT:case b.THEAD:{bA(e,t);break}case b.INPUT:{TA(e,t);break}case b.CAPTION:{pA(e,t);break}case b.COLGROUP:{gA(e,t);break}default:_i(e,t)}}function bi(e,t){switch(t.tagID){case b.TABLE:{e.openElements.hasInTableScope(b.TABLE)&&(e.openElements.popUntilTagNamePopped(b.TABLE),e._resetInsertionMode());break}case b.TEMPLATE:{Zn(e,t);break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TBODY:case b.TD:case b.TFOOT:case b.TH:case b.THEAD:case b.TR:break;default:_i(e,t)}}function _i(e,t){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,ea(e,t),e.fosterParentingEnabled=n}function cp(e,t){e.pendingCharacterTokens.push(t)}function dp(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function qr(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)_i(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}const fp=new Set([b.CAPTION,b.COL,b.COLGROUP,b.TBODY,b.TD,b.TFOOT,b.TH,b.THEAD,b.TR]);function kA(e,t){const n=t.tagID;fp.has(n)?e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_TABLE,vr(e,t)):kt(e,t)}function wA(e,t){const n=t.tagID;switch(n){case b.CAPTION:case b.TABLE:{e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_TABLE,n===b.TABLE&&bi(e,t));break}case b.BODY:case b.COL:case b.COLGROUP:case b.HTML:case b.TBODY:case b.TD:case b.TFOOT:case b.TH:case b.THEAD:case b.TR:break;default:ta(e,t)}}function Wu(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.COL:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.TEMPLATE:{Kt(e,t);break}default:_s(e,t)}}function SA(e,t){switch(t.tagID){case b.COLGROUP:{e.openElements.currentTagId===b.COLGROUP&&(e.openElements.pop(),e.insertionMode=U.IN_TABLE);break}case b.TEMPLATE:{Zn(e,t);break}case b.COL:break;default:_s(e,t)}}function _s(e,t){e.openElements.currentTagId===b.COLGROUP&&(e.openElements.pop(),e.insertionMode=U.IN_TABLE,e._processToken(t))}function na(e,t){switch(t.tagID){case b.TR:{e.openElements.clearBackToTableBodyContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_ROW;break}case b.TH:case b.TD:{e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(Y.TR,b.TR),e.insertionMode=U.IN_ROW,ra(e,t);break}case b.CAPTION:case b.COL:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE,vr(e,t));break}default:vr(e,t)}}function Bo(e,t){const n=t.tagID;switch(t.tagID){case b.TBODY:case b.TFOOT:case b.THEAD:{e.openElements.hasInTableScope(n)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE);break}case b.TABLE:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE,bi(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TD:case b.TH:case b.TR:break;default:bi(e,t)}}function ra(e,t){switch(t.tagID){case b.TH:case b.TD:{e.openElements.clearBackToTableRowContext(),e._insertElement(t,ie.HTML),e.insertionMode=U.IN_CELL,e.activeFormattingElements.insertMarker();break}case b.CAPTION:case b.COL:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:case b.TR:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,na(e,t));break}default:vr(e,t)}}function hp(e,t){switch(t.tagID){case b.TR:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY);break}case b.TABLE:{e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,Bo(e,t));break}case b.TBODY:case b.TFOOT:case b.THEAD:{(e.openElements.hasInTableScope(t.tagID)||e.openElements.hasInTableScope(b.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=U.IN_TABLE_BODY,Bo(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:case b.TD:case b.TH:break;default:bi(e,t)}}function AA(e,t){const n=t.tagID;fp.has(n)?(e.openElements.hasInTableScope(b.TD)||e.openElements.hasInTableScope(b.TH))&&(e._closeTableCell(),ra(e,t)):kt(e,t)}function CA(e,t){const n=t.tagID;switch(n){case b.TD:case b.TH:{e.openElements.hasInTableScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=U.IN_ROW);break}case b.TABLE:case b.TBODY:case b.TFOOT:case b.THEAD:case b.TR:{e.openElements.hasInTableScope(n)&&(e._closeTableCell(),hp(e,t));break}case b.BODY:case b.CAPTION:case b.COL:case b.COLGROUP:case b.HTML:break;default:ta(e,t)}}function mp(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.OPTION:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e._insertElement(t,ie.HTML);break}case b.OPTGROUP:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop(),e._insertElement(t,ie.HTML);break}case b.HR:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop(),e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.INPUT:case b.KEYGEN:case b.TEXTAREA:case b.SELECT:{e.openElements.hasInSelectScope(b.SELECT)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),t.tagID!==b.SELECT&&e._processStartTag(t));break}case b.SCRIPT:case b.TEMPLATE:{Kt(e,t);break}}}function pp(e,t){switch(t.tagID){case b.OPTGROUP:{e.openElements.stackTop>0&&e.openElements.currentTagId===b.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===b.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===b.OPTGROUP&&e.openElements.pop();break}case b.OPTION:{e.openElements.currentTagId===b.OPTION&&e.openElements.pop();break}case b.SELECT:{e.openElements.hasInSelectScope(b.SELECT)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode());break}case b.TEMPLATE:{Zn(e,t);break}}}function _A(e,t){const n=t.tagID;n===b.CAPTION||n===b.TABLE||n===b.TBODY||n===b.TFOOT||n===b.THEAD||n===b.TR||n===b.TD||n===b.TH?(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e._processStartTag(t)):mp(e,t)}function IA(e,t){const n=t.tagID;n===b.CAPTION||n===b.TABLE||n===b.TBODY||n===b.TFOOT||n===b.THEAD||n===b.TR||n===b.TD||n===b.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e.onEndTag(t)):pp(e,t)}function NA(e,t){switch(t.tagID){case b.BASE:case b.BASEFONT:case b.BGSOUND:case b.LINK:case b.META:case b.NOFRAMES:case b.SCRIPT:case b.STYLE:case b.TEMPLATE:case b.TITLE:{Kt(e,t);break}case b.CAPTION:case b.COLGROUP:case b.TBODY:case b.TFOOT:case b.THEAD:{e.tmplInsertionModeStack[0]=U.IN_TABLE,e.insertionMode=U.IN_TABLE,vr(e,t);break}case b.COL:{e.tmplInsertionModeStack[0]=U.IN_COLUMN_GROUP,e.insertionMode=U.IN_COLUMN_GROUP,Wu(e,t);break}case b.TR:{e.tmplInsertionModeStack[0]=U.IN_TABLE_BODY,e.insertionMode=U.IN_TABLE_BODY,na(e,t);break}case b.TD:case b.TH:{e.tmplInsertionModeStack[0]=U.IN_ROW,e.insertionMode=U.IN_ROW,ra(e,t);break}default:e.tmplInsertionModeStack[0]=U.IN_BODY,e.insertionMode=U.IN_BODY,kt(e,t)}}function RA(e,t){t.tagID===b.TEMPLATE&&Zn(e,t)}function gp(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):$u(e,t)}function LA(e,t){t.tagID===b.HTML?kt(e,t):Is(e,t)}function xp(e,t){var n;if(t.tagID===b.HTML){if(e.fragmentContext||(e.insertionMode=U.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===b.HTML){e._setEndLocation(e.openElements.items[0],t);const r=e.openElements.items[1];r&&!(!((n=e.treeAdapter.getNodeSourceCodeLocation(r))===null||n===void 0)&&n.endTag)&&e._setEndLocation(r,t)}}else Is(e,t)}function Is(e,t){e.insertionMode=U.IN_BODY,ea(e,t)}function MA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.FRAMESET:{e._insertElement(t,ie.HTML);break}case b.FRAME:{e._appendElement(t,ie.HTML),t.ackSelfClosing=!0;break}case b.NOFRAMES:{Kt(e,t);break}}}function PA(e,t){t.tagID===b.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==b.FRAMESET&&(e.insertionMode=U.AFTER_FRAMESET))}function DA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.NOFRAMES:{Kt(e,t);break}}}function OA(e,t){t.tagID===b.HTML&&(e.insertionMode=U.AFTER_AFTER_FRAMESET)}function FA(e,t){t.tagID===b.HTML?kt(e,t):ls(e,t)}function ls(e,t){e.insertionMode=U.IN_BODY,ea(e,t)}function BA(e,t){switch(t.tagID){case b.HTML:{kt(e,t);break}case b.NOFRAMES:{Kt(e,t);break}}}function jA(e,t){t.chars=at,e._insertCharacters(t)}function HA(e,t){e._insertCharacters(t),e.framesetOk=!1}function bp(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==ie.HTML&&e.openElements.currentTagId!==void 0&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function UA(e,t){if(nS(t))bp(e),e._startTagOutsideForeignContent(t);else{const n=e._getAdjustedCurrentElement(),r=e.treeAdapter.getNamespaceURI(n);r===ie.MATHML?tp(t):r===ie.SVG&&(rS(t),np(t)),Vu(t),t.selfClosing?e._appendElement(t,r):e._insertElement(t,r),t.ackSelfClosing=!0}}function zA(e,t){if(t.tagID===b.P||t.tagID===b.BR){bp(e),e._endTagOutsideForeignContent(t);return}for(let n=e.openElements.stackTop;n>0;n--){const r=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(r)===ie.HTML){e._endTagOutsideForeignContent(t);break}const s=e.treeAdapter.getTagName(r);if(s.toLowerCase()===t.tagName){t.tagName=s,e.openElements.shortenToLength(n);break}}}Y.AREA,Y.BASE,Y.BASEFONT,Y.BGSOUND,Y.BR,Y.COL,Y.EMBED,Y.FRAME,Y.HR,Y.IMG,Y.INPUT,Y.KEYGEN,Y.LINK,Y.META,Y.PARAM,Y.SOURCE,Y.TRACK,Y.WBR;const VA=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\t\n\f\r />])/gi,qA=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),ad={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function yp(e,t){const n=eC(e),r=Tm("type",{handlers:{root:$A,element:WA,text:YA,comment:Tp,doctype:GA,raw:XA},unknown:QA}),s={parser:n?new rd(ad):rd.getFragmentParser(void 0,ad),handle(o){r(o,s)},stitches:!1,options:t||{}};r(e,s),Ir(s,sn());const i=n?s.parser.document:s.parser.getFragment(),a=tw(i,{file:s.options.file});return s.stitches&&Js(a,"comment",function(o,u,l){const c=o;if(c.value.stitch&&l&&u!==void 0){const f=l.children;return f[u]=c.value.stitch,u}}),a.type==="root"&&a.children.length===1&&a.children[0].type===e.type?a.children[0]:a}function Ep(e,t){let n=-1;if(e)for(;++n<e.length;)t.handle(e[n])}function $A(e,t){Ep(e.children,t)}function WA(e,t){ZA(e,t),Ep(e.children,t),JA(e,t)}function YA(e,t){t.parser.tokenizer.state>4&&(t.parser.tokenizer.state=0);const n={type:je.CHARACTER,chars:e.value,location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function GA(e,t){const n={type:je.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=n,t.parser._processToken(t.parser.currentToken)}function KA(e,t){t.stitches=!0;const n=tC(e);if("children"in e&&"children"in n){const r=yp({type:"root",children:e.children},t.options);n.children=r.children}Tp({type:"comment",value:{stitch:n}},t)}function Tp(e,t){const n=e.value,r={type:je.COMMENT,data:n,location:Ii(e)};Ir(t,sn(e)),t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken)}function XA(e,t){if(t.parser.tokenizer.preprocessor.html="",t.parser.tokenizer.preprocessor.pos=-1,t.parser.tokenizer.preprocessor.lastGapPos=-2,t.parser.tokenizer.preprocessor.gapStack=[],t.parser.tokenizer.preprocessor.skipNextNewLine=!1,t.parser.tokenizer.preprocessor.lastChunkWritten=!1,t.parser.tokenizer.preprocessor.endOfChunkHit=!1,t.parser.tokenizer.preprocessor.isEol=!1,vp(t,sn(e)),t.parser.tokenizer.write(t.options.tagfilter?e.value.replace(VA,"&lt;$1$2"):e.value,!1),t.parser.tokenizer._runParsingLoop(),t.parser.tokenizer.state===72||t.parser.tokenizer.state===78){t.parser.tokenizer.preprocessor.lastChunkWritten=!0;const n=t.parser.tokenizer._consume();t.parser.tokenizer._callState(n)}}function QA(e,t){const n=e;if(t.options.passThrough&&t.options.passThrough.includes(n.type))KA(n,t);else{let r="";throw qA.has(n.type)&&(r=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),new Error("Cannot compile `"+n.type+"` node"+r)}}function Ir(e,t){vp(e,t);const n=e.parser.tokenizer.currentCharacterToken;n&&n.location&&(n.location.endLine=e.parser.tokenizer.preprocessor.line,n.location.endCol=e.parser.tokenizer.preprocessor.col+1,n.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=n,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=ft.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function vp(e,t){if(t&&t.offset!==void 0){const n={startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-t.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=t.offset,e.parser.tokenizer.preprocessor.line=t.line,e.parser.tokenizer.currentLocation=n}}function ZA(e,t){const n=e.tagName.toLowerCase();if(t.parser.tokenizer.state===ft.PLAINTEXT)return;Ir(t,sn(e));const r=t.parser.openElements.current;let s="namespaceURI"in r?r.namespaceURI:jn.html;s===jn.html&&n==="svg"&&(s=jn.svg);const i=aw({...e,children:[]},{space:s===jn.svg?"svg":"html"}),a={type:je.START_TAG,tagName:n,tagID:_r(n),selfClosing:!1,ackSelfClosing:!1,attrs:"attrs"in i?i.attrs:[],location:Ii(e)};t.parser.currentToken=a,t.parser._processToken(t.parser.currentToken),t.parser.tokenizer.lastStartTagName=n}function JA(e,t){const n=e.tagName.toLowerCase();if(!t.parser.tokenizer.inForeignNode&&mw.includes(n)||t.parser.tokenizer.state===ft.PLAINTEXT)return;Ir(t,Ys(e));const r={type:je.END_TAG,tagName:n,tagID:_r(n),selfClosing:!1,ackSelfClosing:!1,attrs:[],location:Ii(e)};t.parser.currentToken=r,t.parser._processToken(t.parser.currentToken),n===t.parser.tokenizer.lastStartTagName&&(t.parser.tokenizer.state===ft.RCDATA||t.parser.tokenizer.state===ft.RAWTEXT||t.parser.tokenizer.state===ft.SCRIPT_DATA)&&(t.parser.tokenizer.state=ft.DATA)}function eC(e){const t=e.type==="root"?e.children[0]:e;return!!(t&&(t.type==="doctype"||t.type==="element"&&t.tagName.toLowerCase()==="html"))}function Ii(e){const t=sn(e)||{line:void 0,column:void 0,offset:void 0},n=Ys(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:t.line,startCol:t.column,startOffset:t.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function tC(e){return"children"in e?Xn({...e,children:[]}):Xn(e)}function kp(e){return function(t,n){return yp(t,{...e,file:n})}}const Mn=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],oi={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...Mn,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...Mn],h2:[["className","sr-only"]],img:[...Mn,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...Mn,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...Mn],table:[...Mn],ul:[...Mn,["className","contains-task-list"]],"*":["abbr","accept","acceptCharset","accessKey","action","align","alt","axis","border","cellPadding","cellSpacing","char","charOff","charSet","checked","clear","colSpan","color","cols","compact","coords","dateTime","dir","encType","frame","hSpace","headers","height","hrefLang","htmlFor","id","isMap","itemProp","label","lang","maxLength","media","method","multiple","name","noHref","noShade","noWrap","open","prompt","readOnly","rev","rowSpan","rows","rules","scope","selected","shape","size","span","start","summary","tabIndex","title","useMap","vAlign","value","width"]},clobber:["ariaDescribedBy","ariaLabelledBy","id","name"],clobberPrefix:"user-content-",protocols:{cite:["http","https"],href:["http","https","irc","ircs","mailto","xmpp"],longDesc:["http","https"],src:["http","https"]},required:{input:{disabled:!0,type:"checkbox"}},strip:["script"],tagNames:["a","b","blockquote","br","code","dd","del","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","li","ol","p","picture","pre","q","rp","rt","ruby","s","samp","section","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","tt","ul","var"]},bn={}.hasOwnProperty;function nC(e,t){let n={type:"root",children:[]};const r={schema:t?{...oi,...t}:oi,stack:[]},s=wp(r,e);return s&&(Array.isArray(s)?s.length===1?n=s[0]:n.children=s:n=s),n}function wp(e,t){if(t&&typeof t=="object"){const n=t;switch(typeof n.type=="string"?n.type:""){case"comment":return rC(e,n);case"doctype":return iC(e,n);case"element":return sC(e,n);case"root":return aC(e,n);case"text":return oC(e,n)}}}function rC(e,t){if(e.schema.allowComments){const n=typeof t.value=="string"?t.value:"",r=n.indexOf("-->"),i={type:"comment",value:r<0?n:n.slice(0,r)};return Ni(i,t),i}}function iC(e,t){if(e.schema.allowDoctypes){const n={type:"doctype"};return Ni(n,t),n}}function sC(e,t){const n=typeof t.tagName=="string"?t.tagName:"";e.stack.push(n);const r=Sp(e,t.children),s=uC(e,t.properties);e.stack.pop();let i=!1;if(n&&n!=="*"&&(!e.schema.tagNames||e.schema.tagNames.includes(n))&&(i=!0,e.schema.ancestors&&bn.call(e.schema.ancestors,n))){const o=e.schema.ancestors[n];let u=-1;for(i=!1;++u<o.length;)e.stack.includes(o[u])&&(i=!0)}if(!i)return e.schema.strip&&!e.schema.strip.includes(n)?r:void 0;const a={type:"element",tagName:n,properties:s,children:r};return Ni(a,t),a}function aC(e,t){const r={type:"root",children:Sp(e,t.children)};return Ni(r,t),r}function oC(e,t){const r={type:"text",value:typeof t.value=="string"?t.value:""};return Ni(r,t),r}function Sp(e,t){const n=[];if(Array.isArray(t)){const r=t;let s=-1;for(;++s<r.length;){const i=wp(e,r[s]);i&&(Array.isArray(i)?n.push(...i):n.push(i))}}return n}function uC(e,t){const n=e.stack[e.stack.length-1],r=e.schema.attributes,s=e.schema.required,i=r&&bn.call(r,n)?r[n]:void 0,a=r&&bn.call(r,"*")?r["*"]:void 0,o=t&&typeof t=="object"?t:{},u={};let l;for(l in o)if(bn.call(o,l)){const c=o[l];let f=od(e,ud(i,l),l,c);f==null&&(f=od(e,ud(a,l),l,c)),f!=null&&(u[l]=f)}if(s&&bn.call(s,n)){const c=s[n];for(l in c)bn.call(c,l)&&!bn.call(u,l)&&(u[l]=c[l])}return u}function od(e,t,n,r){return t?Array.isArray(r)?lC(e,t,n,r):Ap(e,t,n,r):void 0}function lC(e,t,n,r){let s=-1;const i=[];for(;++s<r.length;){const a=Ap(e,t,n,r[s]);(typeof a=="number"||typeof a=="string")&&i.push(a)}return i}function Ap(e,t,n,r){if(!(typeof r!="boolean"&&typeof r!="number"&&typeof r!="string")&&cC(e,n,r)){if(typeof t=="object"&&t.length>1){let s=!1,i=0;for(;++i<t.length;){const a=t[i];if(a&&typeof a=="object"&&"flags"in a){if(a.test(String(r))){s=!0;break}}else if(a===r){s=!0;break}}if(!s)return}return e.schema.clobber&&e.schema.clobberPrefix&&e.schema.clobber.includes(n)?e.schema.clobberPrefix+r:r}}function cC(e,t,n){const r=e.schema.protocols&&bn.call(e.schema.protocols,t)?e.schema.protocols[t]:void 0;if(!r||r.length===0)return!0;const s=String(n),i=s.indexOf(":"),a=s.indexOf("?"),o=s.indexOf("#"),u=s.indexOf("/");if(i<0||u>-1&&i>u||a>-1&&i>a||o>-1&&i>o)return!0;let l=-1;for(;++l<r.length;){const c=r[l];if(i===c.length&&s.slice(0,c.length)===c)return!0}return!1}function Ni(e,t){const n=zh(t);t.data&&(e.data=Xn(t.data)),n&&(e.position=n)}function ud(e,t){let n,r=-1;if(e)for(;++r<e.length;){const s=e[r],i=typeof s=="string"?s:s[0];if(i===t)return s;i==="data*"&&(n=s)}if(t.length>4&&t.slice(0,4).toLowerCase()==="data")return n}function Cp(e){return function(t){return nC(t,e)}}var rh;const _p={...oi,protocols:{...oi.protocols,src:[...((rh=oi.protocols)==null?void 0:rh.src)??["http","https","mailto"],"data"]}},dC={remarkPlugins:[Um],rehypePlugins:[kp,[Cp,_p]]};let Qr=null,ld=null;function fC(){return Qr?Promise.resolve(Qr):(ld??(ld=Promise.all([Se(()=>import("./index-DomuSTqN.js"),__vite__mapDeps([3,1,2]),import.meta.url),Se(()=>import("./index-DGtU5wXR.js"),__vite__mapDeps([4,1,2]),import.meta.url)]).then(([{default:e},{default:t}])=>(Qr={remarkPlugins:[Um,e],rehypePlugins:[kp,[Cp,_p],t]},Qr))),ld)}function hC(e){return e.includes("$")||e.includes("\\(")||e.includes("\\[")}function Ip(e){const[t,n]=w.useState(Qr),r=hC(e??"");return w.useEffect(()=>{if(!r||t)return;let s=!0;return fC().then(i=>{s&&n(i)}),()=>{s=!1}},[r,t]),t??dC}function mC({retry:e}){const t=Ge();return x.jsxs("div",{className:"text-body text-warning p-4 flex items-start gap-2",children:[x.jsx(ku,{className:"w-4 h-4 shrink-0 mt-0.5"}),x.jsxs("span",{children:[t("error.renderFailed")," ",x.jsx("button",{className:"underline ml-1",onClick:e,children:t("error.retry")})]})]})}class pC extends w.Component{constructor(){super(...arguments);ha(this,"state",{error:null});ha(this,"retry",()=>this.setState({error:null}))}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,r){console.error("[ErrorBoundary caught]",n,r.componentStack)}render(){return this.state.error?this.props.fallback?this.props.fallback(this.state.error,this.retry):x.jsx(mC,{error:this.state.error,retry:this.retry}):this.props.children}}function yi(e,t,n){const r=[];let s="";const i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(o){const u=o.parentElement;if(!u)return NodeFilter.FILTER_REJECT;const l=u.tagName;return l==="SCRIPT"||l==="STYLE"||u.closest(".katex-html")||u.closest(".katex-mathml")&&!u.closest("annotation")||!(n!=null&&n.includeMarks)&&u.closest("mark.lookatstudy-underline")||t&&!u.closest(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});let a;for(;a=i.nextNode();){const o=a,u=o.textContent??"",l=s.length;s+=u,r.push({node:o,start:l,end:s.length})}return{text:s,nodes:r}}function Np(e,t){const n=cd(e.startContainer,e.startOffset,t,"start"),r=cd(e.endContainer,e.endOffset,t,"end");return n==null||r==null||r<=n?null:{start:n,end:r}}function cd(e,t,n,r){var s,i,a;if(e.nodeType===Node.TEXT_NODE){for(const o of n.nodes)if(o.node===e)return o.start+Math.min(t,((s=o.node.textContent)==null?void 0:s.length)??0);return r==="start"?((i=n.nodes[0])==null?void 0:i.start)??null:((a=n.nodes[n.nodes.length-1])==null?void 0:a.end)??null}if(e instanceof Element){const o=Array.from(e.childNodes);if(r==="end"){for(let l=t;l<o.length;l++){const c=Rp(o[l],n);if(c!=null)return c}const u=n.nodes[n.nodes.length-1];return u?u.end:null}else{for(let l=t;l>=0;l--){const c=Lp(o[l],n);if(c!=null)return c}const u=n.nodes[0];return u?u.start:null}}return null}function Rp(e,t){if(e.nodeType===Node.TEXT_NODE){for(const n of t.nodes)if(n.node===e)return n.start;return null}if(e instanceof Element)for(const n of e.childNodes){const r=Rp(n,t);if(r!=null)return r}return null}function Lp(e,t){if(e.nodeType===Node.TEXT_NODE){for(const n of t.nodes)if(n.node===e)return n.end;return null}if(e instanceof Element){let n=null;for(const r of e.childNodes){const s=Lp(r,t);s!=null&&(n=s)}return n}return null}function Mp(e,t,n){var o,u,l,c;if(n<=t)return null;let r=null,s=0,i=null,a=0;for(const f of e.nodes)if(!r&&t>=f.start&&t<f.end&&(r=f.node,s=t-f.start),!i&&n>f.start&&n<=f.end&&(i=f.node,a=n-f.start),r&&i)break;if(!r&&e.nodes.length>0){const f=e.nodes[e.nodes.length-1];r=f.node,s=((o=f.node.textContent)==null?void 0:o.length)??0}if(!i&&e.nodes.length>0){const f=e.nodes[e.nodes.length-1];i=f.node,a=((u=f.node.textContent)==null?void 0:u.length)??0}if(!r||!i)return null;try{const f=document.createRange();return f.setStart(r,Math.min(s,((l=r.textContent)==null?void 0:l.length)??0)),f.setEnd(i,Math.min(a,((c=i.textContent)==null?void 0:c.length)??0)),f}catch{return null}}function Pp(e,t){e.querySelectorAll("mark.lookatstudy-underline").forEach(i=>{const a=i.parentNode;if(a){for(;i.firstChild;)a.insertBefore(i.firstChild,i);a.removeChild(i)}}),e.normalize();const n=new Map;if(t.length===0)return n;const r=yi(e),s=[];for(const i of t){const a=gC(r.text,i.text,i.surrounding);a>=0&&s.push({noteId:i.noteId,start:a,end:a+i.text.length})}s.sort((i,a)=>a.start-i.start);for(const i of s){const a=Mp(r,i.start,i.end);if(!a)continue;const o=xC(a,i.noteId);o&&n.set(i.noteId,o)}return n}function gC(e,t,n){if(!t)return-1;let r=e.indexOf(t);if(r<0){const s=t.replace(/\s+/g," ").trim();if(r=e.replace(/\s+/g," ").indexOf(s),r<0)return-1;const a=t.slice(0,Math.min(15,t.length));return e.indexOf(a)}if(n&&n.length>5){const s=e.indexOf(n.slice(0,20));if(s>=0){let i=r,a=Math.abs(r-s),o=r+1;for(;;){const u=e.indexOf(t,o);if(u<0)break;const l=Math.abs(u-s);l<a&&(i=u,a=l),o=u+1}return i}}return r}function xC(e,t){const n="color: inherit; background: transparent; border-bottom: 2px solid rgb(34, 197, 94); padding-bottom: 1px;",r=document.createElement("mark");return r.className="lookatstudy-underline",r.dataset.noteId=t,r.style.cssText=n,Dp(e,r)}function Dp(e,t){var n;if(e.startContainer===e.endContainer&&e.startContainer.nodeType===Node.TEXT_NODE)try{return e.surroundContents(t),t}catch{}try{const r=[],s=document.createTreeWalker(e.commonAncestorContainer,NodeFilter.SHOW_TEXT,{acceptNode(o){return e.intersectsNode(o)&&(o===e.startContainer||o===e.endContainer||e.intersectsNode(o))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let i;for(;i=s.nextNode();)r.push(i);if(r.length===0)return null;let a=null;for(const o of r){let u=o;if(o===e.startContainer&&e.startOffset>0&&(u=o.splitText(e.startOffset)),o===e.endContainer||u===e.endContainer){const c=u===e.endContainer?e.endOffset:e.endOffset-(o===e.startContainer?e.startOffset:0);c<u.textContent.length&&u.splitText(c)}if(!u.textContent)continue;const l=a?t.cloneNode(!1):t;(n=u.parentNode)==null||n.insertBefore(l,u),l.appendChild(u),a||(a=l)}return a}catch{return null}}const Op="cp-reading-mark",Fp="cp-reading";function Wn(e){var n;const t=CSS;try{(n=t.highlights)==null||n.delete(Fp)}catch{}Yu=null,e.querySelectorAll(`.${Op}`).forEach(r=>{const s=r.parentNode;if(s){for(;r.firstChild;)s.insertBefore(r.firstChild,r);s.removeChild(r)}}),e.normalize()}const bC=/[0-9A-Za-z\u00C0-\u024F\u0370-\u03FF\u0400-\u04FF\u4E00-\u9FFF\u3040-\u30FF\uAC00-\uD7AF]/,yC=`「『(([【<《"'“‘`,EC=`。』」))]】>》"'”’!!??…,,、;;::`;function Bp(e){const t=e.codePointAt(0);let n=e;return t>=65281&&t<=65374&&(n=String.fromCharCode(t-65248)),bC.test(n)?n.toLowerCase():null}function TC(e){let t="";const n=[];for(let r=0;r<e.length;r++){const s=Bp(e[r]);s!==null&&(t+=s,n.push(r))}return{canon:t,map:n}}function vC(e,t){if(t<=0)return 0;let n=0,r=e.length;for(;n<r;){const s=n+r>>1;e[s]<t?n=s+1:r=s}return n}function dd(e,t,n){const{canon:r,map:s}=TC(e),i=t.trim().split(/\s+/).map(m=>[...m].map(Bp).filter(Boolean).join("")).filter(m=>m.length>0);if(i.length===0||r.length===0){const m=t.trim();if(!m)return null;const p=e.indexOf(m,Math.max(0,n));return p>=0?{start:p,end:p+m.length}:null}const a=vC(s,Math.max(0,n)),o=i.join("");let u=-1,l=-1;const c=r.indexOf(o,a);if(c>=0)u=c,l=c+o.length-1;else{let m=a;for(const p of i){const g=r.indexOf(p,m);if(g<0)return null;u<0&&(u=g),l=g+p.length-1,m=l+1}if(u<0||l-u+1>o.length*3+40)return null}if(l>=s.length||u<0)return null;let f=s[u],h=s[l]+1;const d=n>0?n:0;for(let m=0;m<3&&f-1>=d&&yC.includes(e[f-1]);m++)f--;for(let m=0;m<4&&h<e.length&&EC.includes(e[h]);m++)h++;return{start:f,end:h}}const jo=new WeakMap;function jp(e){jo.delete(e)}function Hp(e,t,n){Wn(e);const r=t.trim();if(!r)return null;const s=yi(e,n==null?void 0:n.within,{includeMarks:!0}),i=jo.get(e)??0;let a=dd(s.text,r,i);if(!a&&i>0&&(a=dd(s.text,r,0)),!a)return null;jo.set(e,a.end);const o=Mp(s,a.start,a.end);if(!o)return null;const u=CSS;if(typeof Highlight<"u"&&u.highlights)try{return u.highlights.set(Fp,new Highlight(o)),Yu=o,o}catch{}const l=document.createElement("span");return l.className=Op,Dp(o,l)?o:null}let Yu=null;function kC(){return Yu}function Up(e,t){var a,o,u;const n=e.getClientRects(),r=n.length>0&&n[0].height>0?n[0]:(a=e.startContainer.parentElement??e.startContainer)==null?void 0:a.getBoundingClientRect();if(!r||r.height<=0)return;if(!t){(u=(o=e.startContainer.parentElement??e.startContainer)==null?void 0:o.scrollIntoView)==null||u.call(o,{behavior:"smooth",block:"center"});return}const s=t.getBoundingClientRect();if(r.top>=s.top+48&&r.bottom<=s.bottom-48)return;const i=t.scrollTop+(r.top+r.height/2)-(s.top+s.height/2);t.scrollTo({top:Math.max(0,i),behavior:"smooth"})}let cs=null,Ho=null;function wC(e){cs=e,Ho=(e==null?void 0:e.textContent)??null}function SC(){if(AC(cs))return cs;if(Ho){for(const e of document.querySelectorAll("mark.lookatstudy-underline"))if(e.textContent===Ho)return cs=e,e}return null}function AC(e){return!!e&&e.isConnected}function zp(e){e.scrollIntoView({behavior:"smooth",block:"center"}),e.style.transition="background 0.3s, border-bottom-color 0.3s, border-bottom-width 0.3s",e.style.background="rgba(250, 204, 21, 0.35)",e.style.borderBottom="4px solid rgb(34, 197, 94)",setTimeout(()=>{e.style.color="inherit",e.style.background="transparent",e.style.borderBottom="2px solid rgb(34, 197, 94)"},1500)}function Vp(e){const t=[];let n=!1;for(const r of e.split(`
442
442
  `)){if(/^[ \t]*(?:```|~~~)/.test(r)){t.push(r),n=!n;continue}t.push(n?r:r.replace(/\\\[|\\\]|\\\(|\\\)/g,s=>s==="\\["||s==="\\]"?"$$":"$"))}return t.join(`
443
443
  `)}const ds=new Set(["。","!","?","!","?",";",";","…"]),CC=new Set([",",",","、",":",":"," "," "]),_C=/[\u{1F000}-\u{1FAFF}\u{2600}-\u{27BF}\u{2B00}-\u{2BFF}]/u;function fd(e){return e!=null&&_C.test(String.fromCodePoint(e))}const IC=/(?:[\u{1F000}-\u{1FAFF}\u{2600}-\u{27BF}\u{2B00}-\u{2BFF}](?:\uFE0F|\u200D[\u{1F000}-\u{1FAFF}\u{2600}-\u{27BF}\u{2B00}-\u{2BFF}]|[\u{1F3FB}-\u{1F3FF}])*)$/u,Uo=new Set(["”",'"',"」","』","》",")","】","])".slice(0,1)]);function NC(e){let t=e;return t=t.replace(/\r\n?/g,`
444
444
  `),t=t.replace(/(?:^|\n)[ \t]*(?:```|~~~)[^\n]*\n[\s\S]*?(?:\n[ \t]*(?:```|~~~)[^\n]*|\n?$)/g,`
@@ -446,8 +446,8 @@ Based on my performance, decide what comes next: explain why I got questions wro
446
446
 
447
447
  `),t.trim()}function RC(e){return LC(NC(e),{flush:!0}).sentences}function qp(e,t){if(t<0||t>=e.length)return"";let n=t;for(;n>0&&!MC(e[n-1]??"");)n--;const r=[];for(let s=n;s<=t;s++){const i=e[s];i&&i.trim()&&r.push(i)}return r.join(" ")}function LC(e,t={}){const n=Math.max(8,t.maxBuffer??120),r=t.flush??!1,s=[],i=e.length;let a=0,o=0,u=-1;const l=f=>{const h=e.slice(a,f).trim();h&&s.push(h),a=f,u=-1};for(;o<i;){const f=e[o],h=e.codePointAt(o);if(fd(h)){let d=o+(h>65535?2:1);for(;d<i;){const m=e.codePointAt(d),p=m>65535?2:1;if(m===65039||m===8205||m>=127995&&m<=127999||fd(m)){d+=p;continue}break}l(d),o=d;continue}if(f===`
448
448
  `){const d=e.slice(a,o+1).replace(/[^\S\n]+$/,"");d.trim()&&s.push(d),a=o+1,u=-1,o++;continue}if(ds.has(f)){let d=o+1;for(;d<i&&(ds.has(e[d])||Uo.has(e[d]));)d++;l(d),o=d;continue}if(f==="."){const d=o>0?e[o-1]:"",m=o+1<i?e[o+1]:"";if((m===""||/\s/.test(m))&&!/\d/.test(d)){let p=o+1;for(;p<i&&(Uo.has(e[p])||ds.has(e[p]));)p++;l(p),o=p;continue}}if(CC.has(f)&&(u=o),o-a+1>n)if(u>a){const d=u;l(d),a=d+1}else{l(o+1),o++;continue}o++}const c=e.slice(a).trim();return r&&c&&s.push(c),{sentences:s,rest:r?"":c}}function MC(e){if(/\n\s*$/.test(e))return!0;const t=e.trimEnd();if(!t)return!0;let n=t.length-1;for(;n>=0&&Uo.has(t[n]);)n--;if(n<0)return!0;const r=t[n];return ds.has(r)||r==="."||r===`
449
- `?!0:IC.test(t)}function $p(e,t,n,r,s){const a=r??e,o=a.top+a.height/2;return!s&&a.right+8+n<=t?{left:a.right+8,top:o,transform:"translate(0, -50%)"}:!s&&e.left-8-n>=0?{left:e.left-8,top:o,transform:"translate(-100%, -50%)"}:{left:Math.min(Math.max(e.left,0),Math.max(0,t-n)),top:a.bottom+8,transform:"translate(0, 0)"}}const hd="lookatstudy-tts-settings-changed";function md(e){const t=n=>{const r=n.toLowerCase();return r==="zh-cn"||r==="zh_cn"||r==="zh"?0:r.startsWith("zh")?1:2};return[...e].sort((n,r)=>t(n.lang)-t(r.lang)||n.lang.localeCompare(r.lang)||n.name.localeCompare(r.name))}function pd(e,t){if(e.length===0)return null;const n=t==null?void 0:t.trim();if(n){const i=e.find(a=>a.name===n);if(i)return i}const r=md(e.filter(i=>i.default));return r.length>0&&PC(r[0].lang)?r[0]:md(e)[0]??null}function PC(e){return e.toLowerCase().startsWith("zh")}function e4(e){return`${e.name} · ${e.lang}`}const DC=[["\\leq","小于等于"],["\\le","小于等于"],["\\geq","大于等于"],["\\ge","大于等于"],["\\neq","不等于"],["\\ne","不等于"],["\\approx","约等于"],["\\equiv","恒等于"],["\\pm","正负"],["\\times","乘以"],["\\cdot","点乘"],["\\div","除以"],["\\to","趋于"],["\\rightarrow","趋于"],["\\Rightarrow","推出"],["\\infty","无穷"],["\\sum","求和"],["\\prod","连乘"],["\\int","积分"],["\\lim","极限"],["\\log","对数"],["\\ln","自然对数"],["\\exp","指数"],["\\in","属于"],["\\subset","包含于"],["\\cup","并"],["\\cap","交"],["\\forall","任意"],["\\exists","存在"],["\\partial","偏导"],["\\nabla","梯度"],["\\angle","角"],["\\degree","度"],["\\cdots","点点点"],["\\ldots","点点点"]],OC={alpha:"阿尔法",beta:"贝塔",gamma:"伽马",delta:"德尔塔",epsilon:"艾普西隆",zeta:"泽塔",eta:"伊塔",theta:"西塔",iota:"约塔",kappa:"卡帕",lambda:"拉姆达",mu:"缪",nu:"纽",xi:"克西",pi:"派",rho:"柔",sigma:"西格马",tau:"陶",phi:"斐",chi:"凯",psi:"普西",omega:"欧米伽"};function FC(e,t){if(e[t]!=="{")return null;let n=0;for(let r=t;r<e.length;r++)if(e[r]==="{")n++;else if(e[r]==="}"&&(n--,n===0))return{body:e.slice(t+1,r),end:r+1};return null}function $r(e,t){const n=FC(e,t);return n||{body:e[t]??"",end:t+1}}function BC(e){let t=e;t=t.replace(/\\(?:left|right|displaystyle|limits)\b/g," "),t=t.replace(/\\[,;!\s]|\\quad|\\qquad|~/g," ");for(let n=0;n<12;n++){let r=t;r=r.replace(/\\[dt]?frac(?![A-Za-z])/g,"\\frac");{let s;for(;(s=r.indexOf("\\frac"))>=0;){const i=$r(r,s+5),a=$r(r,i.end);r=r.slice(0,s)+`${i.body} 分之 ${a.body} `+r.slice(a.end)}}{let s;for(;(s=r.indexOf("\\binom"))>=0;){const i=$r(r,s+6),a=$r(r,i.end);r=r.slice(0,s)+`${i.body} 取 ${a.body} `+r.slice(a.end)}}r=r.replace(/\\sqrt\s*\[( {[^{}]*} |[^\s\\]+)\s*\]\s*/g,(s,i)=>`${i.trim()} 次根号 `);{let s;for(;(s=r.indexOf("\\sqrt"))>=0;){const i=$r(r,s+5);r=r.slice(0,s)+`根号 ${i.body} `+r.slice(i.end)}}if(r=r.replace(/\\(?:mathbf|mathbb|mathrm|mathit|boldsymbol|text|operatorname)\s*/g,s=>s.startsWith("\\text")?"":" "),r===t){t=r;break}t=r}for(let n=0;n<8;n++){const r=t.replace(/(\\frac|[\w)\]}]|\s)\s*\^\s*(\{[^{}]*\}|[^\s])|(\\frac|[\w)\]}]| )\s*_\s*(\{[^{}]*\}|[^\s])/g,(s,i,a,o,u)=>a!==void 0?`${i} 的 ${a.replace(/[{}]/g,"")} 次方`:`${o} 下标 ${u.replace(/[{}]/g,"")}`);if(r===t)break;t=r}for(const[n,r]of DC)t=t.split(n).join(` ${r} `);return t=t.replace(/\\([A-Za-z]+)\b/g,(n,r)=>` ${OC[r]??r} `),t=t.replace(/[{}]/g," "),t.replace(/\s+/g," ").trim()}function jC(e){return e.replace(/\$\$([^$]+)\$\$|\$([^$]+)\$/g,(t,n,r)=>{const s=BC(n??r??"");return s?` ${s} `:""})}const gd=new WeakMap;let Wp=null;function Wa(e){Wp=e}function HC(){return Wp}const Yp=1024;function Gp(e){let t=gd.get(e);return t||(t=e.createAnalyser(),t.fftSize=Yp,t.smoothingTimeConstant=.55,gd.set(e,t)),t}function UC(e,t){try{const n=Gp(e);t.connect(n),n.connect(e.destination)}catch{try{t.connect(e.destination)}catch{}}}const br=1024,xd=512,zC=3500,VC=7500,qC=.3,$C=.16,WC=1400,YC=2800,Xi=70,Kp=new Float64Array(br);for(let e=0;e<br;e++)Kp[e]=.5*(1-Math.cos(2*Math.PI*e/(br-1)));function GC(e,t){const n=e.length;for(let r=1,s=0;r<n;r++){let i=n>>1;for(;s&i;i>>=1)s^=i;if(s|=i,r<s){const a=e[r];e[r]=e[s],e[s]=a;const o=t[r];t[r]=t[s],t[s]=o}}for(let r=2;r<=n;r<<=1){const s=-2*Math.PI/r,i=Math.cos(s),a=Math.sin(s),o=r>>1;for(let u=0;u<n;u+=r){let l=1,c=0;for(let f=0;f<o;f++){const h=e[u+f],d=t[u+f],m=e[u+f+o],p=t[u+f+o],g=m*l-p*c,y=m*c+p*l;e[u+f]=h+g,t[u+f]=d+y,e[u+f+o]=h-g,t[u+f+o]=d-y;const v=l*i-c*a;c=l*a+c*i,l=v}}}}function KC(e,t){const n=e.length;let r=0;const s=new Float64Array(n),i=new Float64Array(n);for(let p=0;p<n;p++){const g=e[p];r+=Math.abs(g),s[p]=g*Kp[p]}GC(s,i);const a=n>>1,o=t/n,u=new Float64Array(a);let l=0,c=0,f=0,h=0,d=0,m=0;for(let p=0;p<a;p++){const g=p*o;if(g>=t/2-o)break;const y=Math.hypot(s[p],i[p])/a;u[p]=y,l+=y,g>=zC&&g<VC&&(c+=y),g>=_l.lo&&g<_l.hi?(f+=y,h+=y*g):g>=Il.lo&&g<Il.hi&&(d+=y,m+=y*g)}return{level:n>0?Math.min(1,r/n/.22):0,f1:f>0?h/f:400,f2:d>0?m/d:800,hfRatio:l>0?c/l:0}}function XC(e,t){return e.level<=Xg?"closed":e.hfRatio>=qC?"SS":e.hfRatio>=$C&&e.level<.45?"FV":t==="closed"&&e.f2>=WC&&e.f2<=YC?"L":Qg(e.f1,e.f2,e.level)}function QC(e,t){const n=[],r=(c,f,h,d)=>{if(f<=0)return;const m=n[n.length-1];if(m&&m.viseme===h&&Math.abs(m.t+m.dur-c)<1e-9){m.dur+=f,m.level=Math.max(m.level,d);return}n.push({t:c,dur:f,viseme:h,level:d})};if(e.length<br)return{cues:[{t:0,dur:Math.max(0,e.length/t),viseme:"closed",level:0}],duration:Math.max(0,e.length/t)};let s="closed";const i=xd/t;for(let c=0;c+br<=e.length;c+=xd){const f=e.subarray(c,c+br),h=KC(f,t),d=XC(h,s);r(c/t,i,d,h.level),s=d}const a=e.length/t,o=n.length>0?n[n.length-1].t+n[n.length-1].dur:0;o<a-1e-9&&r(o,a-o,"closed",0);const u=n[0];if(u&&u.viseme!=="closed")if(u.dur<=Xi/1e3)u.viseme="closed";else{const c=Math.min(u.dur*.5,Xi/1e3);u.dur-=c,u.t+=c,n.unshift({t:0,dur:c,viseme:"closed",level:0})}const l=n[n.length-1];if(l&&l.viseme!=="closed"){const c=Math.min(l.dur*.5,Xi/1e3);l.dur-=c,n.push({t:l.t+l.dur,dur:c,viseme:"closed",level:0})}for(let c=n.length-1;c>=1;c--){const f=n[c];if(f.viseme!=="closed"&&f.dur<Xi/1e3){const h=n[c-1];h.dur+=f.dur,n.splice(c,1)}}return{cues:n,duration:a}}function ZC(e){const t=[...e].filter(s=>s.dur>0&&Number.isFinite(s.t)).sort((s,i)=>s.t-i.t),n=[];let r=0;for(const s of t){const i=Math.max(0,s.t/1e3),a=s.dur/1e3;i>r+1e-9&&n.push({t:r,dur:i-r,viseme:"closed",level:0});const o=n[n.length-1];o&&o.viseme===s.viseme&&Math.abs(o.t+o.dur-i)<1e-9?(o.dur+=a,o.level=Math.max(o.level,Math.min(1,Math.max(0,s.level)))):n.push({t:i,dur:a,viseme:s.viseme,level:Math.min(1,Math.max(0,s.level))}),r=i+a}return{cues:n,duration:r}}function JC(e,t){const n=e.cues;if(n.length===0||t<0)return null;let r=0,s=n.length-1;for(;r<s;){const a=r+s+1>>1;n[a].t<=t?r=a:s=a-1}const i=n[r];return t<=i.t+i.dur+1e-9?i:null}function Xp(){const[e,t]=w.useState(null),[n,r]=w.useState(null),[s,i]=w.useState(null),[a,o]=w.useState([]),u=w.useRef([]),[l,c]=w.useState(null),[f,h]=w.useState(!1),d=w.useRef(null),m=w.useRef(new Map),p=w.useRef(new Map),g=w.useRef(0),y=w.useRef(!1),v=w.useRef([]),T=w.useRef(0),C=w.useRef(0),E=w.useRef(!1),k=w.useRef(null),_=w.useRef(0),A=w.useRef(null),I=w.useRef(null),S=w.useRef(null);S.current||(S.current=()=>{const B=I.current,q=typeof window<"u"?window.speechSynthesis:void 0;if(!B||B.stopped||!q)return;if(B.i>=B.sentences.length){I.current=null,k.current=null,t(null),r(null),i(null);return}const R=B.i,$=jC(B.sentences[R]),K=new SpeechSynthesisUtterance($);B.voice&&(K.voice=B.voice,K.lang=B.voice.lang),K.rate=B.rate,K.onstart=()=>{!I.current||I.current.stopped||i({index:R,total:B.sentences.length,text:$})};const D=()=>{var Z;!I.current||I.current.stopped||(I.current.i+=1,(Z=S.current)==null||Z.call(S))};K.onend=D,K.onerror=D,q.speak(K)});const M=w.useCallback((B,q)=>{var D;if(typeof window>"u"||!("speechSynthesis"in window)){c("engine-unavailable");return}const R=RC(q);if(R.length===0){c("empty-text");return}u.current=R.slice(),o(R.slice()),_.current=R.length,r({index:0,total:R.length,text:R[0]??""});const $=A.current,K=pd(window.speechSynthesis.getVoices(),($==null?void 0:$.systemVoice)??null);I.current={messageId:B,sentences:R,i:0,stopped:!1,voice:K,rate:bd($==null?void 0:$.speed)},window.speechSynthesis.cancel(),(D=S.current)==null||D.call(S)},[]),N=()=>{if(!d.current){const B=window.AudioContext??window.webkitAudioContext;d.current=new B}return d.current.resume(),d.current},j=w.useCallback(()=>{E.current&&C.current>=T.current&&!y.current&&(k.current=null,t(null),r(null),i(null))},[]),P=w.useCallback(()=>{const B=d.current;if(!B||y.current)return;const q=m.current.get(g.current);if(!q){j();return}const R=g.current;m.current.delete(R),y.current=!0,i({index:R,total:_.current,text:u.current[R]??""}),g.current+=1;const $=B.createBufferSource();$.buffer=q,UC(B,$),Wa({ctx:B,timeline:p.current.get(R)??null,startedAtCtxTime:B.currentTime,analyser:Gp(B)}),$.onended=()=>{C.current+=1,y.current=!1,Wa(null),P()},v.current.push($),$.start()},[j]),L=w.useCallback(()=>{for(const B of v.current)try{B.onended=null,B.stop()}catch{}v.current=[],m.current.clear(),p.current.clear(),Wa(null),y.current=!1,T.current=0,C.current=0,E.current=!1,k.current=null,g.current=0,_.current=0,u.current=[],o([]),t(null),r(null),i(null),I.current&&(I.current.stopped=!0,I.current=null),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()},[]),F=w.useCallback(()=>{L(),window.api.ttsStop().catch(()=>{})},[L]),V=w.useCallback((B,q)=>{var R;if(k.current===B){F();return}if(L(),window.dispatchEvent(new CustomEvent("lookatstudy-speech-start",{detail:B})),c(null),k.current=B,T.current=0,C.current=0,E.current=!1,g.current=0,_.current=0,t(B),r({index:0,total:0,text:""}),((R=A.current)==null?void 0:R.engine)==="system"){M(B,q);return}N(),window.api.ttsSpeak(q,B).then($=>{if($.ok){$.firstUse&&h(!0);return}L(),$.reason!=="empty-text"&&c($.reason)}).catch(()=>L())},[M,F,L]);return w.useEffect(()=>{const B=window.api.on("speech:ttsAudio",$=>{if($.messageId!==k.current)return;const K=N();T.current+=1,_.current=$.sentenceTotal,r({index:$.sentenceIndex,total:$.sentenceTotal,text:$.sentence??""}),$.sentence!=null&&(u.current[$.sentenceIndex]=$.sentence,o(u.current.slice())),K.decodeAudioData($.wavBytes).then(D=>{var Z;if($.messageId===k.current){m.current.set($.sentenceIndex,D);try{const oe=(Z=$.visemeCues)!=null&&Z.length?ZC($.visemeCues):QC(e3(D),D.sampleRate);oe&&p.current.set($.sentenceIndex,oe)}catch{}P()}},()=>{$.messageId===k.current&&(T.current-=1,P())})}),q=window.api.on("speech:ttsDone",$=>{$.messageId===k.current&&(E.current=!0,j())}),R=window.api.on("speech:ttsError",()=>L());return()=>{B(),q(),R()}},[j,P,L]),w.useEffect(()=>L,[L]),w.useEffect(()=>{const B=q=>{const R=q.detail;k.current&&R!==k.current&&L()};return window.addEventListener("lookatstudy-speech-start",B),()=>window.removeEventListener("lookatstudy-speech-start",B)},[L]),w.useEffect(()=>{let B=!0;const q=()=>{Promise.all([window.api.getSetting("tts_engine"),window.api.getSetting("tts_system_voice"),window.api.getSetting("tts_speed")]).then(([R,$,K])=>{B&&(A.current={engine:(R??"").trim(),systemVoice:$??null,speed:bd(K)})}).catch(()=>{})};return q(),window.addEventListener(hd,q),()=>{B=!1,window.removeEventListener(hd,q)}},[]),w.useEffect(()=>{if(typeof window>"u"||!("speechSynthesis"in window))return;const B=()=>{var R;const q=I.current;!q||q.voice||(q.voice=pd(window.speechSynthesis.getVoices(),((R=A.current)==null?void 0:R.systemVoice)??null))};return window.speechSynthesis.addEventListener("voiceschanged",B),()=>window.speechSynthesis.removeEventListener("voiceschanged",B)},[]),w.useEffect(()=>{Zg(e!==null)},[e]),{speakingMessageId:e,speakingSentence:n,playingSentence:s,streamTexts:a,failReason:l,clearFailReason:()=>c(null),onlineNotice:f,clearOnlineNotice:()=>h(!1),speak:V,stop:F}}function e3(e){if(e.numberOfChannels===1)return e.getChannelData(0);const t=e.getChannelData(0),n=e.getChannelData(1),r=new Float32Array(t.length);for(let s=0;s<t.length;s++)r[s]=(t[s]+n[s])/2;return r}function bd(e){const t=typeof e=="number"?e:Number.parseFloat(e??"");return Number.isFinite(t)?Math.min(2,Math.max(.5,t)):1}const Qp=w.createContext(null);let t3=0;const n3={default:4e3,success:4e3,info:4e3,warning:5e3,error:6e3},r3={default:null,success:x.jsx(Tu,{className:"w-4 h-4 text-brand shrink-0"}),error:x.jsx(O1,{className:"w-4 h-4 text-warning shrink-0"}),warning:x.jsx(ku,{className:"w-4 h-4 text-review shrink-0"}),info:x.jsx(G1,{className:"w-4 h-4 text-accent shrink-0"})};function i3({children:e}){const[t,n]=w.useState([]),r=w.useCallback(a=>{n(o=>o.filter(u=>u.id!==a))},[]),s=w.useCallback(a=>{n(o=>o.map(u=>u.id===a?{...u,exiting:!0}:u))},[]),i=w.useCallback((a,o)=>{const u=++t3,l=(o==null?void 0:o.severity)??"default",c=(o==null?void 0:o.duration)??n3[l],f={id:u,message:a,action:o==null?void 0:o.action,duration:c,severity:l,exiting:!1};n(h=>[...h,f]),window.setTimeout(()=>s(u),c)},[s]);return x.jsxs(Qp.Provider,{value:{show:i},children:[e,x.jsx("div",{className:"fixed top-14 left-1/2 -translate-x-1/2 z-[100] flex flex-col items-center gap-2 pointer-events-none",role:"region","aria-live":"polite","aria-label":"Notifications",children:t.map(a=>x.jsx(s3,{item:a,onAction:()=>{a.action.onClick(),s(a.id)},onDismiss:()=>s(a.id),onExitDone:()=>r(a.id)},a.id))})]})}function s3({item:e,onAction:t,onDismiss:n,onExitDone:r}){const s=Ge(),i=r3[e.severity];return x.jsxs("div",{className:`pointer-events-auto flex items-center gap-2.5 pl-4 pr-2 py-2 rounded-full bg-surface-0 text-ink-strong text-body shadow-elevated max-w-md ${e.exiting?"toast-exit":"toast-enter"}`,"data-testid":`toast-${e.id}`,"data-severity":e.severity,onAnimationEnd:e.exiting?r:void 0,children:[i,x.jsx("span",{className:"flex-1",children:e.message}),e.action&&x.jsx("button",{onClick:t,className:"text-brand font-bold text-body hover:underline shrink-0 px-1.5 py-1 rounded transition-colors hover:bg-brand/10","data-testid":`toast-action-${e.id}`,children:e.action.label}),x.jsx("button",{onClick:n,className:"text-ink-muted hover:text-ink-strong shrink-0 w-6 h-6 flex items-center justify-center rounded transition-colors hover:bg-surface-3","aria-label":s("action.close"),children:x.jsx(yr,{className:"w-3.5 h-3.5"})})]})}function Gu(){const e=w.useContext(Qp);return e||{show:()=>{}}}const Zp={typescript:()=>Se(()=>import("./typescript-BPQ3VLAy.js"),[],import.meta.url),tsx:()=>Se(()=>import("./tsx-COt5Ahok.js"),[],import.meta.url),javascript:()=>Se(()=>import("./javascript-wDzz0qaB.js"),[],import.meta.url),jsx:()=>Se(()=>import("./jsx-g9-lgVsj.js"),[],import.meta.url),python:()=>Se(()=>import("./python-B6aJPvgy.js"),[],import.meta.url),go:()=>Se(()=>import("./go-C27-OAKa.js"),[],import.meta.url),rust:()=>Se(()=>import("./rust-B1yitclQ.js"),[],import.meta.url),java:()=>Se(()=>import("./java-CylS5w8V.js"),[],import.meta.url),c:()=>Se(()=>import("./c-BIGW1oBm.js"),[],import.meta.url),cpp:()=>Se(()=>import("./cpp-DddhVWhK.js"),__vite__mapDeps([5,6]),import.meta.url),csharp:()=>Se(()=>import("./csharp-DSvCPggb.js"),[],import.meta.url),ruby:()=>Se(()=>import("./ruby-B6QtyW_S.js"),__vite__mapDeps([7,8,9,10,11,12,13,14,15,16,17,5,6,18,19,20]),import.meta.url),php:()=>Se(()=>import("./php-Csjmro_R.js"),__vite__mapDeps([21,8,9,10,11,12,13,22]),import.meta.url),swift:()=>Se(()=>import("./swift-C2oV4EkX.js"),[],import.meta.url),kotlin:()=>Se(()=>import("./kotlin-BdnUsdx6.js"),[],import.meta.url),lua:()=>Se(()=>import("./lua-BaeVxFsk.js"),__vite__mapDeps([19,6]),import.meta.url),r:()=>Se(()=>import("./r-Cf5RLm7j.js"),[],import.meta.url),shellscript:()=>Se(()=>import("./shellscript-Yzrsuije.js"),[],import.meta.url),sql:()=>Se(()=>import("./sql-CRqJ_cUM.js"),[],import.meta.url),html:()=>Se(()=>import("./html-pp8916En.js"),__vite__mapDeps([8,9,10]),import.meta.url),css:()=>Se(()=>import("./css-CLj8gQPS.js"),[],import.meta.url),scss:()=>Se(()=>import("./scss-D5BDwBP9.js"),__vite__mapDeps([23,10]),import.meta.url),xml:()=>Se(()=>import("./xml-sdJ4AIDG.js"),__vite__mapDeps([11,12]),import.meta.url),json:()=>Se(()=>import("./json-Cp-IABpG.js"),[],import.meta.url),yaml:()=>Se(()=>import("./yaml-Buea-lGh.js"),[],import.meta.url),toml:()=>Se(()=>import("./toml-vGWfd6FD.js"),[],import.meta.url),ini:()=>Se(()=>import("./ini-BEwlwnbL.js"),[],import.meta.url),markdown:()=>Se(()=>import("./markdown-Cvjx9yec.js"),[],import.meta.url),dockerfile:()=>Se(()=>import("./dockerfile-BcOcwvcX.js"),[],import.meta.url),makefile:()=>Se(()=>import("./makefile-CHLpvVh8.js"),[],import.meta.url),diff:()=>Se(()=>import("./diff-D97Zzqfu.js"),[],import.meta.url),graphql:()=>Se(()=>import("./graphql-ChdNCCLP.js"),__vite__mapDeps([14,9,15,16,17]),import.meta.url),latex:()=>Se(()=>import("./latex-B2nUCzCX.js"),__vite__mapDeps([24,25]),import.meta.url),vue:()=>Se(()=>import("./vue-CHlpWS_5.js"),__vite__mapDeps([26,10,9,15,22,8]),import.meta.url)},yd={js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",py:"python",python3:"python",rb:"ruby",golang:"go",rs:"rust",cs:"csharp",kt:"kotlin",sh:"shellscript",bash:"shellscript",zsh:"shellscript",shell:"shellscript",console:"shellscript",yml:"yaml",md:"markdown",gfm:"markdown",docker:"dockerfile",tex:"latex",plaintext:"",txt:"",text:""};function a3(e){const t=e.trim().toLowerCase();return t?t in yd?yd[t]||null:t in Zp?t:null:null}let Wr=null;const Ed=new Set;function Ku(){return Wr||(Wr=(async()=>{const[e,t,n,r]=await Promise.all([Se(()=>import("./core-Cf-iwesp.js"),__vite__mapDeps([27,1,2]),import.meta.url),Se(()=>import("./engine-javascript-DBd1bXLz.js"),[],import.meta.url),Se(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url),Se(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url)]);return e.createHighlighterCore({themes:[n.default,r.default],langs:[],engine:t.createJavaScriptRegexEngine({forgiving:!0})})})(),Wr.catch(()=>{Wr=null})),Wr}async function Jp(e){const t=a3(e);if(!t)return null;if(Ed.has(t))return t;const n=Zp[t];if(!n)return null;const r=await Ku(),s=await n();return await r.loadLanguage(s),Ed.add(t),t}async function o3(e,t){try{const n=await Jp(t);return n?(await Ku()).codeToHtml(e,{lang:n,themes:{light:"github-light",dark:"github-dark"},defaultColor:"dark"}):null}catch{return null}}const u3=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");async function t4(e,t){try{const n=await Jp(t);return n?(await Ku()).codeToTokens(e,{lang:n,theme:"github-dark"}).tokens.map(i=>i.map(a=>`<span style="color:${a.color}">${u3(a.content)}</span>`).join("")):null}catch{return null}}function l3(e){const t=Array.isArray(e)?e[0]:e,n=(t==null?void 0:t.props)??{},r=/language-(\w+)/.exec(n.className??""),s=n.children,i=typeof s=="string"?s:Array.isArray(s)?s.join(""):"";return{lang:(r==null?void 0:r[1])??"",text:i}}function e0({children:e,...t}){const n=Ge(),[r,s]=w.useState(!1),[i,a]=w.useState(null),{lang:o,text:u}=l3(e);w.useEffect(()=>{let c=!0;if(u)return o3(u.replace(/\n$/,""),o).then(f=>{c&&f&&a(f)}),()=>{c=!1}},[u]);const l=()=>{var c;(c=navigator.clipboard)==null||c.writeText(u).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})};return x.jsxs("div",{className:"relative group my-3","data-testid":"md-codeblock",children:[x.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 bg-surface-1 border border-b-0 border-[var(--border-faint)] rounded-t-md",children:[x.jsx("span",{className:"text-caption font-mono text-ink-faint uppercase tracking-wider",children:o||"code"}),x.jsx("button",{onClick:l,"aria-label":n("chat.copy"),className:"text-caption text-ink-muted hover:text-brand transition-colors opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 inline-flex items-center gap-1","data-testid":"md-copy",children:r?x.jsxs(x.Fragment,{children:[x.jsx(Tn,{className:"w-3 h-3 inline"}),n("chat.copied")]}):x.jsxs(x.Fragment,{children:[x.jsx(j1,{className:"w-3 h-3 inline"}),n("chat.copy")]})})]}),i?x.jsx("div",{className:"md-shiki","data-testid":"md-shiki",dangerouslySetInnerHTML:{__html:i}}):x.jsx("pre",{...t,className:"!mt-0 !rounded-t-none !border-t-0",children:e})]})}const t0=w.lazy(()=>Se(()=>import("./index-WF4B6heO.js"),__vite__mapDeps([28,1,2,29,30,31]),import.meta.url).then(e=>({default:e.ArtifactRenderer}))),c3=w.lazy(()=>Se(()=>import("./CanvasStage-sR8T2IFn.js").then(e=>e.a),__vite__mapDeps([29,1,2]),import.meta.url).then(e=>({default:e.CanvasStage}))),d3=w.lazy(()=>Se(()=>import("./ReviewPanel-DPX_Gbvn.js"),__vite__mapDeps([32,1,2]),import.meta.url).then(e=>({default:e.SelfRatingCard}))),f3={concept_map:mh,quiz:lh,compare_table:hx,diagram:V1,code_walkthrough:B1},h3=new Set(["concept_map","quiz","compare_table","diagram","code_walkthrough"]);function m3(e,t){return h3.has(t)?e(`artifact.type.${t}`):e("artifact.type.unknown")}function p3({selectedNode:e,items:t,loading:n,forceTab:r,canvasArtifact:s,isReviewing:i,onReviewDone:a,onUserTabChange:o,onRemove:u,onTogglePin:l,onRecordQuizResult:c,onSaveContentNote:f,onUpdateNoteComment:h,onJumpToSource:d,onQuoteToChat:m,locale:p}){var _;const g=Ge(),[y,v]=w.useState("content"),T=r??y,C=A=>{v(A),o==null||o()},E=e?t.filter(A=>A.nodeId===e.id):[],k=w.useRef(null);return w.useEffect(()=>{var A;(A=k.current)==null||A.scrollTo({top:0})},[e==null?void 0:e.id]),x.jsxs("div",{className:"relative h-full flex flex-col bg-surface-2","data-testid":"notebook-panel",children:[x.jsx("div",{className:"px-3 pt-3 pb-1 shrink-0","data-testid":"notebook-tabs",children:x.jsxs("div",{className:"flex p-1 rounded-lg gap-1 bg-ink/[0.08]",role:"tablist","aria-label":"Notebook",children:[x.jsx(Xa,{label:g("notebook.tab.explain"),icon:vn,active:T==="content",onClick:()=>C("content"),testid:"tab-content"}),x.jsx(Xa,{label:g("notebook.tab.notes"),icon:J1,active:T==="notes",onClick:()=>C("notes"),testid:"tab-notes",badge:E.length>0?String(E.length):void 0}),x.jsx(Xa,{label:g("notebook.tab.board"),icon:pa,active:T==="board",onClick:()=>C("board"),testid:"tab-board"})]})}),x.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 animate-tab-slide",ref:k,role:"tabpanel",children:T==="board"?x.jsx("div",{className:"h-full flex flex-col","data-testid":"board-tab-content",children:s?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"px-4 pt-3 pb-2 shrink-0 flex items-center gap-2 min-w-0",children:[x.jsx(pa,{className:"w-4 h-4 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-label font-bold text-ink truncate",children:((_=s.output)==null?void 0:_.title)??s.toolName})]}),x.jsx("div",{className:"flex-1 min-h-0 px-2 pb-2",children:x.jsx("div",{className:"h-full rounded-xl overflow-hidden bg-surface-0/60 border border-[var(--border-faint)]",children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(c3,{testid:"board-canvas-stage",children:x.jsx(t0,{data:s.output,variant:"canvas"})})})})})]}):x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6",children:[x.jsx(pa,{className:"w-10 h-10 mb-3 text-ink-muted opacity-30"}),x.jsx("div",{className:"text-body text-ink-muted max-w-sm leading-relaxed",children:g("notebook.board.empty")})]})}):x.jsx(x.Fragment,{children:x.jsx("div",{className:"mx-auto w-full max-w-[960px] min-h-full flex flex-col",children:T==="content"?x.jsx(g3,{selectedNode:e,contentNotes:E.filter(A=>A.artifactType==="user_note"&&A.sourceAnchor),onQuoteToChat:m,onSaveContentNote:f,locale:p,isReviewing:i,onReviewDone:a}):x.jsx(x3,{items:E,loading:n,selectedNode:e,onRemove:u,onTogglePin:l,onRecordQuizResult:c,onUpdateNoteComment:h,onJumpToSource:d})})})},T)]})}function g3({selectedNode:e,contentNotes:t,onQuoteToChat:n,onSaveContentNote:r,locale:s,isReviewing:i,onReviewDone:a}){const o=Ge(),u=Gu(),l=Xp();w.useEffect(()=>{if(l.failReason){const L=l.failReason==="engine-unavailable"?"chat.speech.engine_unavailable":l.failReason==="azure-key-missing"?"chat.speech.azure_key_missing":l.failReason==="azure-region-missing"?"chat.speech.azure_region_missing":l.failReason==="edge-failed"?"chat.speech.edge_failed":"chat.speech.model_missing";u.show(o(L),{severity:"warning"}),l.clearFailReason()}else l.onlineNotice&&(u.show(o("chat.speech.edge_disclosed"),{severity:"info"}),l.clearOnlineNotice())},[l.failReason,l.onlineNotice,u,o,l]);const c=w.useRef(l.stop);c.current=l.stop;const f=e?`content-${e.id}`:null;w.useEffect(()=>()=>{c.current()},[f]);const[h,d]=w.useState(null),m=Ip(h??""),[p,g]=w.useState(!1),[y,v]=w.useState(!1),[T,C]=w.useState([]),[E,k]=w.useState(null),_=w.useRef(null),A=w.useRef(null),I=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches;w.useEffect(()=>{if(!e){d(null),v(!1);return}let L=!1;return g(!0),v(!1),le.getNodeContent(e.id,s??void 0).then(F=>{L||d(F)}).catch(()=>{L||(d(null),v(!0))}).finally(()=>{L||g(!1)}),()=>{L=!0}},[e==null?void 0:e.id,s]),w.useEffect(()=>{if(!e){C([]);return}let L=!1;return le.listAssetsByNode(e.id).then(F=>{L||C(F)}).catch(()=>{L||C([])}),()=>{L=!0}},[e==null?void 0:e.id]),w.useEffect(()=>{if(!h||!_.current)return;const L=[];for(const V of t)try{const B=JSON.parse(V.sourceAnchor);if(B.type==="content"){const q=JSON.parse(V.data).text??"";q&&L.push({noteId:V.id,text:q,surrounding:B.surroundingText})}}catch{}const F=setTimeout(()=>{A.current&&Pp(A.current,L)},80);return()=>clearTimeout(F)},[h,t]),w.useEffect(()=>{const L=F=>{var q;const V=F.detail;if(!V)return;const B=(q=A.current)==null?void 0:q.querySelector(`mark[data-note-id="${V}"]`);B&&zp(B)};return window.addEventListener("lookatstudy-jump-to-note",L),()=>window.removeEventListener("lookatstudy-jump-to-note",L)},[]);const S=l.speakingMessageId===f&&l.playingSentence!=null?l.playingSentence.index:null;w.useEffect(()=>{const L=A.current;if(!L)return;if(S==null){Wn(L);return}const F=qp(l.streamTexts,S);if(!F)return;S===0&&jp(L);const V=setTimeout(()=>{const B=Hp(L,F);B&&Up(B,L.closest(".overflow-y-auto"))},30);return()=>clearTimeout(V)},[S,l.streamTexts,f]),w.useEffect(()=>{S==null&&A.current&&Wn(A.current)},[S]);const M=w.useRef(!1);M.current=S!=null,w.useEffect(()=>()=>{M.current&&Wn(document.body)},[]);const N=w.useCallback(()=>{var X;if(!n&&!r)return;const L=window.getSelection(),F=(L==null?void 0:L.toString().trim())??"";if(F.length<2||F.length>500){k(null);return}const V=L==null?void 0:L.getRangeAt(0);if(!V||!((X=_.current)!=null&&X.contains(V.commonAncestorContainer))){k(null);return}const B=V.getBoundingClientRect(),q=_.current.getBoundingClientRect(),R=A.current;let $=null;if(R&&R.contains(V.commonAncestorContainer)){const ce=yi(R);$=Np(V,ce)}const K=R?yi(R).text:F,D=$?$.start:K.indexOf(F),Z=D>=0?K.slice(Math.max(0,D-30),D+F.length+30):F,oe=V.getClientRects(),z=oe.length?oe[oe.length-1]:B,J=$p({left:B.left-q.left,top:B.top-q.top,right:B.right-q.left,bottom:B.bottom-q.top,width:B.width,height:B.height},q.width,n?I?190:150:I?140:100,{left:z.left-q.left,top:z.top-q.top,right:z.right-q.left,bottom:z.bottom-q.top,width:z.width,height:z.height},I);k({x:J.left,y:J.top,transform:J.transform,text:F,surrounding:Z,offsets:$??void 0})},[n,r,I]);w.useEffect(()=>{const L=I?600:250;let F=null,V=null,B=!1;const q=()=>{var D;return(((D=window.getSelection())==null?void 0:D.toString().trim().length)??0)>=2},R=()=>{q()?(V&&(clearTimeout(V),V=null),k(D=>D&&null),F&&clearTimeout(F),F=setTimeout(()=>{F=null,!B&&q()&&N()},L)):V||(V=setTimeout(()=>k(D=>D&&null),250))},$=D=>{var oe;const Z=D.target;(oe=Z==null?void 0:Z.closest)!=null&&oe.call(Z,"[data-selection-popover]")||(B=!0)},K=()=>{B=!1,F&&(clearTimeout(F),F=null),!V&&q()&&N()};return document.addEventListener("selectionchange",R),window.addEventListener("pointerdown",$,!0),window.addEventListener("pointerup",K,!0),window.addEventListener("pointercancel",K,!0),()=>{document.removeEventListener("selectionchange",R),window.removeEventListener("pointerdown",$,!0),window.removeEventListener("pointerup",K,!0),window.removeEventListener("pointercancel",K,!0),F&&clearTimeout(F),V&&clearTimeout(V)}},[N]);const j=w.useCallback(()=>{var F;if(!E||!n)return;const L=E.text.length>200?E.text.slice(0,200)+"…":E.text;n(o("notebook.quote.template",{text:L})),k(null),(F=window.getSelection())==null||F.removeAllRanges()},[E,n,o]),P=w.useCallback(()=>{var F,V,B;if(!E||!r||!e)return;const L=E.text.length>200?E.text.slice(0,200)+"…":E.text;r(L,{type:"content",surroundingText:E.surrounding,startOffset:(F=E.offsets)==null?void 0:F.start,endOffset:(V=E.offsets)==null?void 0:V.end}),Jg(),setTimeout(()=>{var $;const q=($=A.current)==null?void 0:$.querySelectorAll("mark.lookatstudy-underline"),R=q&&q.length>0?q[q.length-1]:null;R&&wC(R)},200),k(null),(B=window.getSelection())==null||B.removeAllRanges()},[E,r,e]);return e?x.jsxs("div",{className:"p-5 relative","data-testid":"node-content",ref:_,children:[!p&&!y&&h&&x.jsx("div",{className:"sticky top-0 z-20 flex justify-end gap-2 -mt-2 pointer-events-none",children:x.jsx("button",{onClick:()=>l.speak(f??"content",h),"data-tooltip":l.speakingMessageId===f?o("chat.speech.stop"):o("chat.speech.read_aloud_node"),"aria-label":l.speakingMessageId===f?o("chat.speech.stop"):o("chat.speech.read_aloud_node"),"data-testid":l.speakingMessageId===f?"node-content-speak-active":"node-content-speak",className:`pointer-events-auto shrink-0 rounded-full p-2 bg-surface-2 shadow-elevated transition-colors ${l.speakingMessageId===f?"text-brand animate-pulse":"text-ink-muted hover:text-ink-strong"}`,children:l.speakingMessageId===f?x.jsx(vu,{className:"w-4 h-4"}):x.jsx(gh,{className:"w-4 h-4"})})}),x.jsx("div",{className:"text-caption font-bold text-brand uppercase tracking-wider mb-1",children:e.type==="section"?o("notebook.node_type.section"):e.type==="concept"?o("notebook.node_type.concept"):o("notebook.node_type.lesson")}),x.jsx("div",{className:"flex items-start justify-between gap-3 mb-4",children:x.jsx("h2",{className:"text-title font-extrabold text-ink-strong tracking-tight","data-testid":"node-content-title",children:e.title})}),p?x.jsxs("div",{className:"text-body text-ink-muted flex items-center gap-2",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),o("notebook.content.loading")]}):y?x.jsxs("div",{className:"text-body text-warning",children:[o("notebook.content.load_failed"),x.jsx("button",{className:"underline ml-1",onClick:()=>{v(!1),g(!0),le.getNodeContent(e.id,s??void 0).then(d).catch(()=>v(!0)).finally(()=>g(!1))},children:o("notebook.content.retry")})]}):h?x.jsx(pC,{fallback:(L,F)=>x.jsxs("div",{className:"prose prose-sm max-w-[80ch] leading-relaxed [&_pre]:max-w-full [&_pre]:overflow-x-auto",children:[x.jsx("div",{className:"text-body text-warning mb-2",children:o("notebook.content.render_failed")}),x.jsxs("pre",{className:"text-caption text-ink-muted whitespace-pre-wrap break-words bg-surface-1 p-3 rounded",children:[h.slice(0,500),h.length>500?`
450
- `+o("notebook.content.truncated"):""]}),x.jsx("div",{className:"flex gap-2 mt-2",children:x.jsx("button",{className:"text-caption underline text-accent",onClick:F,children:o("notebook.content.retry_render")})})]}),children:x.jsx("div",{ref:A,className:"prose prose-sm max-w-[80ch] leading-relaxed break-words overflow-x-auto [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_img]:max-w-full [&_video]:max-w-full [&_iframe]:max-w-full select-text",children:x.jsx(gm,{remarkPlugins:m.remarkPlugins,rehypePlugins:m.rehypePlugins,urlTransform:L=>L,components:{pre({children:L,...F}){return x.jsx(e0,{...F,children:L})},a({children:L,...F}){return x.jsx("a",{...F,target:"_blank",rel:"noopener noreferrer",children:L})},img({src:L,alt:F,...V}){return x.jsx(b3,{src:L,alt:F,assets:T,...V})},table({children:L}){return x.jsx("div",{className:"overflow-x-auto my-4",children:x.jsx("table",{children:L})})}},children:Vp(h)})})},`${e.id}-${s??"orig"}`):x.jsx("div",{className:"text-body text-ink-muted",children:o("notebook.content.empty")}),T.length>0&&x.jsxs("div",{className:"mt-6 pt-4 border-t border-[var(--border-faint)]",children:[x.jsxs("div",{className:"text-label font-bold text-ink-muted mb-2 flex items-center gap-1",children:[x.jsx(Y1,{className:"w-3.5 h-3.5"}),x.jsx("span",{children:o("notebook.images.heading",{n:T.length})})]}),x.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:T.map(L=>x.jsx(y3,{asset:L},L.id))})]}),E&&x.jsxs("div",{"data-selection-popover":!0,style:{left:E.x,top:E.y,transform:E.transform},className:"absolute z-20 flex items-center gap-0.5 msg-enter whitespace-nowrap",children:[n&&x.jsxs("button",{onClick:j,"data-testid":"quote-to-chat-btn","aria-label":o("notebook.quote.ask"),className:"px-2 py-1.5 rounded-lg bg-brand text-white text-label font-bold shadow-elevated flex items-center gap-1 hover:bg-brand-light transition-colors",children:[x.jsx(fh,{className:"w-3 h-3"}),o("notebook.quote.ask")]}),x.jsxs("button",{onClick:P,"data-testid":"save-note-btn","aria-label":o("notebook.quote.add_note"),className:"px-2 py-1.5 rounded-lg bg-accent text-white text-label font-bold shadow-elevated flex items-center gap-1 hover:brightness-110 transition",title:o("notebook.quote.save_note.title"),children:[x.jsx(hi,{className:"w-3.5 h-3.5"}),o("notebook.quote.add_note")]})]}),e.sourcePath&&x.jsx("div",{className:"mt-6 pt-3 border-t border-[var(--border-faint)] text-label text-ink-muted",children:o("notebook.source.label",{path:e.sourcePath})}),x.jsxs("div",{className:"mt-4 p-3 rounded-lg bg-accent/5 border border-accent/20 text-body text-ink-muted flex items-start gap-1.5",children:[x.jsx(X1,{className:"w-3.5 h-3.5 shrink-0 mt-0.5 text-accent"}),x.jsx("span",{children:o("notebook.quote.hint")})]}),i&&e&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(d3,{nodeId:e.id,onRated:a})})]}):x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs",children:o("notebook.empty.select_node")})]})}function x3({items:e,loading:t,selectedNode:n,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o}){const u=Ge();if(!n)return x.jsx(Td,{message:u("notebook.empty.notes.title"),icon:"📓"});if(t)return x.jsxs("div",{className:"flex-1 flex items-center justify-center gap-2 text-body text-ink-muted",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),u("notebook.empty.notes.title")]});const l=e.filter(p=>["concept_map","compare_table","diagram","code_walkthrough"].includes(p.artifactType)),c=e.filter(p=>p.artifactType==="user_note"),f=e.filter(p=>p.artifactType==="quiz"),h=e.length,d=f.filter(p=>p.lastResult==="correct").length,m=f.filter(p=>p.lastResult==="wrong").length;return h===0?x.jsx(Td,{message:u("notebook.empty.no_notes_message"),icon:"🧩"}):x.jsxs("div",{className:"p-4 space-y-3","data-testid":"notes-list",children:[x.jsx(Ya,{title:u("notebook.zone.understand"),icon:x.jsx(mh,{className:"w-4 h-4"}),subtitle:u("notebook.zone.understand.subtitle"),count:l.length,testid:"zone-understand",defaultOpen:!1,children:l.length===0?x.jsx(Ga,{hint:u("notebook.zone.understand.empty_hint")}):l.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))}),x.jsx(Ya,{title:u("notebook.zone.note"),icon:x.jsx(hi,{className:"w-4 h-4"}),subtitle:u("notebook.zone.note.subtitle"),count:c.length,testid:"zone-note",defaultOpen:!1,children:c.length===0?x.jsx(Ga,{hint:u("notebook.zone.note.empty_hint")}):c.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))}),x.jsx(Ya,{title:u("notebook.zone.practice"),icon:x.jsx(lh,{className:"w-4 h-4"}),subtitle:f.length>0?u("notebook.zone.practice.subtitle_stats",{total:f.length,correct:d,wrong:m}):u("notebook.zone.practice.subtitle_empty"),count:f.length,testid:"zone-practice",defaultOpen:!1,children:f.length===0?x.jsx(Ga,{hint:u("notebook.zone.practice.empty_hint")}):f.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))})]})}function Ya({title:e,icon:t,subtitle:n,count:r,testid:s,defaultOpen:i=!0,children:a}){const[o,u]=w.useState(i),l=w.useRef(!0),c=w.useRef(r);return w.useEffect(()=>{if(l.current){l.current=!1,c.current=r;return}r>c.current&&u(!0),c.current=r},[r]),x.jsxs("section",{className:"rounded-xl bg-surface-1 overflow-hidden","data-testid":s,children:[x.jsxs("button",{onClick:()=>u(f=>!f),"aria-expanded":o,className:"w-full flex items-center gap-2 px-3 py-2.5 bg-surface-1/50 hover:bg-surface-3/60 transition-colors text-left","data-testid":`${s}-toggle`,children:[x.jsx(Eu,{className:`w-4 h-4 text-ink-muted transition-transform duration-200 ease-out-back ${o?"":"-rotate-90"}`}),x.jsx("span",{className:"text-body text-ink-strong flex items-center",children:t}),x.jsx("span",{className:"text-body font-bold text-ink",children:e}),x.jsx("span",{className:"text-caption font-bold px-1.5 py-0.5 rounded-full bg-brand/15 text-brand",children:r}),x.jsx("span",{className:"text-label text-ink-muted ml-auto truncate",children:n})]}),x.jsx("div",{className:"grid transition-all duration-200 ease-out-expo",style:{gridTemplateRows:o?"1fr":"0fr"},children:x.jsx("div",{className:"overflow-hidden",children:x.jsx("div",{className:"p-3 space-y-3",children:a})})})]})}function Ga({hint:e}){return x.jsx("div",{className:"text-center py-3 text-body text-ink-muted",children:e})}function Ka({item:e,onRemove:t,onTogglePin:n,onRecordQuizResult:r,onUpdateNoteComment:s,onJumpToSource:i}){const a=Ge(),[o,u]=w.useState(!1),[l,c]=w.useState(e.notes??""),f=w.useCallback((T,C,E)=>{e.nodeId&&le.recordQuizAnswer(e.nodeId,E).catch(()=>{}),r(e.id,E)},[e.nodeId,e.id,r]),h=e.artifactType==="user_note";let d="",m=null;if(h){try{d=JSON.parse(e.data).text??""}catch{d=e.title??""}try{e.sourceAnchor&&(m=JSON.parse(e.sourceAnchor))}catch{m=null}}let p=null;if(!h)try{p=JSON.parse(e.data)}catch{p=null}const g=new Date(e.createdAt),y=`${g.getMonth()+1}/${g.getDate()} ${g.getHours().toString().padStart(2,"0")}:${g.getMinutes().toString().padStart(2,"0")}`;if(h){const T=e.notes&&e.notes.trim().length>0?e.notes:null,C=()=>{c(T??""),u(!0)},E=()=>{c(T??""),u(!1)},k=()=>{s==null||s(e.id,l),u(!1)};return x.jsx("div",{className:`bg-surface-2 rounded-lg p-3 relative ${e.pinned?"ring-1 ring-brand/40 bg-brand/5":""}`,"data-testid":`canvas-item-${e.id.slice(0,8)}`,children:x.jsxs("div",{className:"flex items-start gap-2",children:[x.jsx(sx,{className:"w-4 h-4 text-accent shrink-0 mt-0.5"}),x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-body text-ink leading-relaxed whitespace-pre-wrap",children:d}),s&&o?x.jsxs("div",{className:"mt-2 space-y-1.5","data-testid":`note-comment-edit-${e.id.slice(0,8)}`,children:[x.jsx("textarea",{value:l,onChange:_=>c(_.target.value),rows:2,placeholder:a(T?"notebook.note.comment.ph_edit":"notebook.note.comment.ph_new"),className:"w-full text-label leading-relaxed p-2 rounded-md border border-[var(--border-faint)] bg-surface-0 text-ink resize-none focus:outline-none focus:border-brand","data-testid":`note-comment-textarea-${e.id.slice(0,8)}`}),x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsxs("button",{onClick:k,className:"inline-flex items-center gap-1 text-caption font-bold text-white bg-brand hover:bg-brand/90 px-2 py-0.5 rounded","data-testid":`note-comment-save-${e.id.slice(0,8)}`,children:[x.jsx(Tn,{className:"w-3 h-3"})," ",a("notebook.action.save")]}),x.jsxs("button",{onClick:E,className:"inline-flex items-center gap-1 text-caption text-ink-muted hover:text-ink","data-testid":`note-comment-cancel-${e.id.slice(0,8)}`,children:[x.jsx(yr,{className:"w-3 h-3"})," ",a("notebook.action.cancel")]})]})]}):T?x.jsxs("div",{className:"mt-2 px-2.5 py-1.5 rounded-lg bg-ink/5",children:[x.jsx("div",{className:"text-label text-ink-muted italic leading-relaxed whitespace-pre-wrap",children:T}),s&&x.jsxs("button",{onClick:C,className:"mt-1 inline-flex items-center gap-0.5 text-caption text-ink-muted hover:text-accent","data-testid":`note-comment-edit-btn-${e.id.slice(0,8)}`,title:a("notebook.note.edit_comment"),children:[x.jsx(hi,{className:"w-2.5 h-2.5"})," ",a("notebook.note.edit_comment")]})]}):s?x.jsxs("button",{onClick:C,className:"mt-2 inline-flex items-center gap-0.5 text-caption text-ink-muted hover:text-accent","data-testid":`note-comment-add-${e.id.slice(0,8)}`,title:a("notebook.note.add_comment"),children:[x.jsx(hi,{className:"w-2.5 h-2.5"})," ",a("notebook.note.add_comment")]}):null,m&&i&&x.jsx("button",{onClick:()=>i(m,d,e.id),className:"mt-2 inline-flex items-center gap-1 text-caption text-accent hover:underline font-bold","data-testid":`note-source-${e.id.slice(0,8)}`,children:m.type==="content"?x.jsxs(x.Fragment,{children:[x.jsx(vn,{className:"w-3 h-3"}),a("notebook.source.jump_content")]}):x.jsxs(x.Fragment,{children:[x.jsx(fh,{className:"w-3 h-3"}),a("notebook.source.jump_chat")]})}),x.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[x.jsx("span",{className:"text-caption text-ink-muted",children:y}),x.jsx("button",{onClick:()=>t(e.id),className:"text-caption text-ink-muted hover:text-warning","data-testid":`canvas-delete-${e.id.slice(0,8)}`,title:a("notebook.note.delete"),children:x.jsx(Eo,{className:"w-3 h-3"})})]})]})]})})}const v=f3[e.artifactType]??ix;return x.jsxs("div",{className:`bg-surface-2 rounded-lg p-3 relative ${e.pinned?"ring-1 ring-brand/40 bg-brand/5":""}`,"data-testid":`canvas-item-${e.id.slice(0,8)}`,children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[x.jsx("span",{className:"text-body inline-flex items-center text-ink-strong",children:x.jsx(v,{className:"w-4 h-4"})}),x.jsx("span",{className:"text-label font-bold text-ink-muted flex-1 truncate",children:e.title??m3(a,e.artifactType)}),e.artifactType==="quiz"&&e.lastResult&&x.jsx("span",{className:`text-caption font-bold px-1.5 py-0.5 rounded-full ${e.lastResult==="correct"?"bg-brand/15 text-brand":"bg-warning/15 text-warning"}`,"data-testid":`quiz-result-${e.id.slice(0,8)}`,children:e.lastResult==="correct"?a("notebook.quiz.last_correct"):a("notebook.quiz.last_wrong")}),e.pinned?x.jsxs("span",{className:"text-caption text-brand font-bold flex items-center gap-0.5",children:[x.jsx(Hl,{className:"w-2.5 h-2.5"}),a("notebook.note.pinned")]}):null,x.jsx("button",{onClick:()=>n(e.id),className:"text-caption text-ink-muted hover:text-brand","data-testid":`canvas-pin-${e.id.slice(0,8)}`,title:e.pinned?a("notebook.note.unpin"):a("notebook.note.pin"),children:x.jsx(Hl,{className:"w-3 h-3"})}),x.jsx("button",{onClick:()=>t(e.id),className:"text-caption text-ink-muted hover:text-warning","data-testid":`canvas-delete-${e.id.slice(0,8)}`,title:a("notebook.note.delete"),children:x.jsx(Eo,{className:"w-3 h-3"})})]}),x.jsx("div",{className:"text-label",children:p?x.jsx(w.Suspense,{fallback:null,children:x.jsx(t0,{data:p,onQuizAnswered:f})}):x.jsx("div",{className:"text-ink-muted",children:a("notebook.artifact.broken")})}),x.jsx("div",{className:"text-caption text-ink-muted mt-2",children:y})]})}function Td({message:e,icon:t}){return x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6","data-testid":"empty-notebook",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:t}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs leading-relaxed",children:e})]})}function Xa({label:e,icon:t,active:n,onClick:r,testid:s,badge:i}){return x.jsxs("button",{onClick:r,"data-testid":s,role:"tab","aria-selected":n,className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n?"bg-brand/20 text-brand":"text-ink-muted hover:text-ink-strong"}`,children:[x.jsx(t,{className:"w-3 h-3"}),x.jsx("span",{children:e}),i&&x.jsx("span",{className:`text-caption px-1.5 py-0.5 rounded-full font-bold ${n?"bg-brand/30 text-brand":"bg-ink/10 text-ink-faint"}`,children:i})]})}function b3({src:e,alt:t,assets:n,...r}){const[s,i]=w.useState(null),a=e??"",o=w.useMemo(()=>{if(!a||a.startsWith("http")||a.startsWith("data:"))return null;const l=a.split("/").pop()??a;return n.find(c=>{var f;return(f=c.sourcePath)==null?void 0:f.endsWith(l)})??n.find(c=>c.filename===l)??null},[a,n]);if(w.useEffect(()=>{if(!o){i(null);return}let l=!1;return le.getAssetDataUrl(o.id).then(c=>{l||i(c)}),()=>{l=!0}},[o]),!a)return null;const u=s??a;return x.jsx("img",{src:u,alt:t??"","data-asset-id":o==null?void 0:o.id,className:"rounded-lg max-w-full h-auto my-3",loading:"lazy",...r})}function y3({asset:e}){const t=Ge(),[n,r]=w.useState(null),[s,i]=w.useState(!1);return w.useEffect(()=>{let a=!1;return le.getAssetDataUrl(e.id).then(o=>{a||r(o)}),()=>{a=!0}},[e.id]),x.jsxs(x.Fragment,{children:[x.jsx("button",{onClick:()=>i(!0),className:"block rounded-lg overflow-hidden bg-ink/5 dark:bg-ink/10 hover:ring-2 hover:ring-accent transition-all",title:e.altText??e.filename,children:n?x.jsx("img",{src:n,alt:e.altText??e.filename,"data-asset-id":e.id,className:"w-full h-24 object-cover",loading:"lazy"}):x.jsx("div",{className:"w-full h-24 flex items-center justify-center text-ink-faint text-caption",children:t("notebook.asset.loading")})}),s&&n&&x.jsxs("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center p-8 cursor-pointer",onClick:()=>i(!1),children:[x.jsx("img",{src:n,alt:e.altText??e.filename,"data-asset-id":e.id,className:"max-w-[90vw] max-h-[90vh] object-contain rounded-lg"}),x.jsx("button",{className:"absolute top-4 right-4 text-white/70 hover:text-white","aria-label":t("action.close"),onClick:a=>{a.stopPropagation(),i(!1)},children:x.jsx(yr,{className:"w-6 h-6"})})]})]})}function E3(e){const[t,n]=w.useState([]),[r,s]=w.useState(!0),i=w.useCallback(async()=>{if(!e){n([]),s(!1);return}try{const m=await le.canvasList(e);n(m)}catch{n([])}finally{s(!1)}},[e]);w.useEffect(()=>{i()},[i]);const a=w.useCallback(async m=>{if(!e)return null;try{const p=await le.canvasSave({...m,courseId:e});return n(g=>g.some(y=>y.id===p.id)?g:[p,...g]),p}catch{return null}},[e]),o=w.useCallback(async m=>{if(!e)return null;try{const p=await le.canvasSaveUserNote({...m,courseId:e});return n(g=>[p,...g]),p}catch{return null}},[e]),u=w.useCallback(async(m,p)=>{try{const g=await le.canvasRecordQuizResult(m,p);return g&&n(y=>y.map(v=>v.id===m?g:v)),g}catch{return null}},[]),l=w.useCallback(async(m,p)=>{try{const g=await le.canvasUpdateUserNoteComment(m,p);return g&&n(y=>y.map(v=>v.id===m?g:v)),g}catch{return null}},[]),c=w.useCallback(async m=>{try{await le.canvasDelete(m),n(p=>p.filter(g=>g.id!==m))}catch{}},[]),f=w.useCallback(async m=>{try{const p=await le.canvasTogglePin(m);p&&n(g=>g.map(v=>v.id===m?p:v).sort((v,T)=>T.pinned!==v.pinned?T.pinned-v.pinned:T.createdAt.localeCompare(v.createdAt)))}catch{}},[]),h=w.useCallback(m=>m===null?t:t.filter(p=>p.nodeId===m),[t]),d=w.useCallback((m,p)=>{const g=m===null?t:t.filter(y=>y.nodeId===m);return p==="note"?g.filter(y=>y.artifactType==="user_note"):p==="practice"?g.filter(y=>y.artifactType==="quiz"):g.filter(y=>["concept_map","compare_table","diagram","code_walkthrough"].includes(y.artifactType))},[t]);return{items:t,loading:r,reload:i,save:a,saveUserNote:o,recordQuizResult:u,updateUserNoteComment:l,remove:c,togglePin:f,byNode:h,byZone:d}}const vd={small:16,medium:17,large:18},kd="lookatstudy-font-size",T3="medium";function v3(){const[e,t]=w.useState(()=>{if(typeof localStorage<"u"){const r=localStorage.getItem(kd);if(r&&r in vd)return r}return T3});w.useEffect(()=>{document.documentElement.style.fontSize=`${vd[e]}px`,localStorage.setItem(kd,e)},[e]);const n=w.useCallback(r=>{t(s=>{const i=["small","medium","large"],a=i.indexOf(s),o=r==="up"?Math.min(a+1,i.length-1):Math.max(a-1,0);return i[o]})},[]);return{size:e,bump:n}}const Qa=new Map;function k3({ref_:e,onOpen:t}){const n=Ge(),[r,s]=w.useState(e.previewUrl??(e.file?Qa.get(e.file)??null:null));return w.useEffect(()=>{if(r||!e.file)return;let i=!1;return(async()=>{const a=Qa.get(e.file);if(a){i||s(a);return}const o=await le.getAttachmentDataUrl(e.file);o&&!i&&(Qa.set(e.file,o),s(o))})(),()=>{i=!0}},[e.file,r]),r?x.jsx("button",{type:"button",onClick:()=>t(r),"aria-label":n("chat.attach.preview",{name:e.name}),className:"w-24 h-24 rounded-lg overflow-hidden border border-[var(--border)] hover:border-accent transition-colors shrink-0",children:x.jsx("img",{src:r,alt:e.name,className:"w-full h-full object-cover"})}):x.jsx("div",{className:"w-24 h-24 rounded-lg bg-ink/[0.06] flex items-center justify-center text-caption text-ink-faint",title:e.name,children:e.name.slice(0,8)})}function w3({src:e,name:t,onClose:n}){return w.useEffect(()=>{const r=s=>{s.key==="Escape"&&n()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[n]),x.jsxs("div",{role:"dialog","aria-label":t,className:"fixed inset-0 z-[70] bg-black/80 flex items-center justify-center p-8 cursor-zoom-out animate-[toast-enter_.15s_ease-out]",onClick:n,"data-testid":"attachment-lightbox",children:[x.jsx("img",{src:e,alt:t,className:"max-w-full max-h-full object-contain rounded-lg shadow-elevated"}),x.jsx("button",{type:"button","aria-label":"close",onClick:n,className:"absolute top-4 right-4 w-9 h-9 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition-colors",children:x.jsx(yr,{className:"w-4 h-4"})})]})}function S3({parts:e}){const t=Ge(),[n,r]=w.useState(null),s=e.filter(o=>o.type==="attachment").map(o=>o.attachment);if(s.length===0)return null;const i=s.filter(o=>o.kind==="image"),a=s.filter(o=>o.kind==="text");return x.jsxs("div",{className:"flex flex-col gap-1.5 mb-1","data-testid":"message-attachments",children:[i.length>0&&x.jsx("div",{className:"flex gap-1.5 flex-wrap",children:i.map((o,u)=>x.jsx(k3,{ref_:o,onOpen:l=>r({src:l,name:o.name})},o.file??o.previewUrl??`${o.name}:${u}`))}),a.length>0&&x.jsx("div",{className:"flex gap-1.5 flex-wrap",children:a.map((o,u)=>x.jsxs("span",{"data-tooltip":t("chat.attach.textChip"),className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-ink/[0.06] text-caption text-ink-muted",children:[x.jsx(Us,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"truncate max-w-[12rem]",children:o.name})]},`${o.name}:${u}`))}),n&&x.jsx(w3,{src:n.src,name:n.name,onClose:()=>r(null)})]})}const A3=w.lazy(()=>Se(()=>import("./index-WF4B6heO.js"),__vite__mapDeps([28,1,2,29,30,31]),import.meta.url).then(e=>({default:e.ArtifactRenderer})));function C3({messages:e,streaming:t,onApplyProposal:n,onRejectProposal:r,summary:s,onStartLearning:i,agentReady:a=!0,onGotoSettings:o,hasNode:u=!0,selectedNodeId:l,threadId:c,onSaveChatNote:f,chatNotes:h,onPickQuizAction:d,onQuizCompleted:m,cardMode:p=!1}){const g=Ge(),y=Gu(),v=Xp();w.useEffect(()=>{if(v.failReason){const B=v.failReason==="engine-unavailable"?"chat.speech.engine_unavailable":v.failReason==="azure-key-missing"?"chat.speech.azure_key_missing":v.failReason==="azure-region-missing"?"chat.speech.azure_region_missing":v.failReason==="edge-failed"?"chat.speech.edge_failed":v.failReason==="custom-provider-missing"?"chat.speech.custom_provider_missing":"chat.speech.model_missing";y.show(g(B),{severity:"warning"}),v.clearFailReason()}},[v.failReason,y,g,v]),w.useEffect(()=>{v.onlineNotice&&(y.show(g("chat.speech.edge_disclosed"),{severity:"info"}),v.clearOnlineNotice())},[v.onlineNotice,y,g,v]);const T=w.useCallback((B,q,R)=>{l&&le.recordQuizAnswer(l,R,B.kc).catch(()=>{})},[l]),[C,E]=w.useState(null);w.useEffect(()=>{if(!l){E(null);return}let B=!1;const q=()=>le.getProgress(l).then($=>{B||E(($==null?void 0:$.mastery)??null)}).catch(()=>{});q();const R=le.on("state:changed",$=>{$==="mastery"&&q()});return()=>{B=!0,R()}},[l]);const k=w.useRef(null),_=w.useRef(!0),[A,I]=w.useState(!1);w.useEffect(()=>{const B=q=>{const R=q.detail;if(!(R!=null&&R.msgId))return;const $=document.querySelector(`[data-msg-id="${R.msgId}"]`);$&&($.scrollIntoView({behavior:"smooth",block:"center"}),$.classList.add("ring-2","ring-accent","rounded-lg"),setTimeout(()=>$.classList.remove("ring-2","ring-accent","rounded-lg"),2500))};return window.addEventListener("lookatstudy-highlight-message",B),()=>window.removeEventListener("lookatstudy-highlight-message",B)},[]),w.useEffect(()=>{if(t||!k.current||!h||h.length===0)return;const B=setTimeout(()=>{if(!k.current)return;const q=new Map;for(const R of h)try{const $=JSON.parse(R.sourceAnchor);if($.type==="chat"&&$.msgId){const K=JSON.parse(R.data).text??"";if(K){const D=q.get($.msgId)??[];D.push({noteId:R.id,text:K}),q.set($.msgId,D)}}}catch{}for(const[R,$]of q){const K=k.current.querySelector(`[data-msg-id="${R}"]`);K&&Pp(K,$)}},150);return()=>clearTimeout(B)},[e,h,t]),w.useEffect(()=>{const B=q=>{var K;const R=q.detail;if(!R)return;const $=(K=k.current)==null?void 0:K.querySelector(`mark[data-note-id="${R}"]`);$&&zp($)};return window.addEventListener("lookatstudy-jump-to-chat-note",B),()=>window.removeEventListener("lookatstudy-jump-to-chat-note",B)},[]);const[S,M]=w.useState(null),N=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,j=w.useCallback(()=>{if(!f||!c)return;const B=window.getSelection(),q=(B==null?void 0:B.toString().trim())??"";if(q.length<2||q.length>500){M(null);return}const R=B==null?void 0:B.getRangeAt(0);if(!R){M(null);return}const $=k.current;if(!($!=null&&$.contains(R.commonAncestorContainer))){M(null);return}let K=R.commonAncestorContainer,D=null;for(;K&&K!==$;){if(K instanceof HTMLElement&&K.dataset.msgId){D=K;break}K=K.parentNode}if(!D){M(null);return}const Z=D.dataset.msgId,oe=yi(D),z=Np(R,oe),J=R.getBoundingClientRect(),X=$.getBoundingClientRect(),ce=R.getClientRects(),he=ce.length?ce[ce.length-1]:J,re=$p({left:J.left-X.left,top:J.top-X.top,right:J.right-X.left,bottom:J.bottom-X.top,width:J.width,height:J.height},X.width,N?150:110,{left:he.left-X.left,top:he.top-X.top,right:he.right-X.left,bottom:he.bottom-X.top,width:he.width,height:he.height},N);M({x:re.left,y:re.top,transform:re.transform,text:q,msgId:Z,startOffset:z==null?void 0:z.start,endOffset:z==null?void 0:z.end})},[f,c,N]);w.useEffect(()=>{const B=N?600:250;let q=null,R=null,$=!1;const K=()=>{var z;return(((z=window.getSelection())==null?void 0:z.toString().trim().length)??0)>=2},D=()=>{K()?(R&&(clearTimeout(R),R=null),M(z=>z&&null),q&&clearTimeout(q),q=setTimeout(()=>{q=null,!$&&K()&&j()},B)):R||(R=setTimeout(()=>M(z=>z&&null),250))},Z=z=>{var X;const J=z.target;(X=J==null?void 0:J.closest)!=null&&X.call(J,"[data-selection-popover]")||($=!0)},oe=()=>{$=!1,q&&(clearTimeout(q),q=null),!R&&K()&&j()};return document.addEventListener("selectionchange",D),window.addEventListener("pointerdown",Z,!0),window.addEventListener("pointerup",oe,!0),window.addEventListener("pointercancel",oe,!0),()=>{document.removeEventListener("selectionchange",D),window.removeEventListener("pointerdown",Z,!0),window.removeEventListener("pointerup",oe,!0),window.removeEventListener("pointercancel",oe,!0),q&&clearTimeout(q),R&&clearTimeout(R)}},[j]);const P=w.useCallback(()=>{var q;if(!S||!f)return;const B=S.text.length>200?S.text.slice(0,200)+"…":S.text;f(B,S.msgId,S.startOffset,S.endOffset),M(null),(q=window.getSelection())==null||q.removeAllRanges()},[S,f]),L=w.useCallback(()=>{const B=k.current;if(!B)return;const q=B.scrollHeight-B.scrollTop-B.clientHeight<80;_.current=q,I(R=>R===!q?R:!q)},[]);w.useEffect(()=>{if(!_.current)return;const B=k.current;B&&(B.scrollTop=B.scrollHeight)},[e,t]);const F=e.length>0&&e[e.length-1].role==="user";w.useEffect(()=>{if(!F)return;_.current=!0,I(!1);const B=k.current;B&&(B.scrollTop=B.scrollHeight)},[F]);const V=w.useCallback(()=>{const B=k.current;B&&(B.scrollTop=B.scrollHeight,_.current=!0,I(!1))},[]);return x.jsxs("div",{className:"relative flex-1 min-h-0",children:[x.jsxs("div",{ref:k,onScroll:L,className:`h-full overflow-y-auto px-3 py-4 space-y-2 relative ${p?"":"px-5 py-6 space-y-6"}`,"data-testid":"chat-stream",children:[e.length===0&&x.jsx("div",{className:"mt-10 mx-auto max-w-md","data-testid":"chat-empty-state",children:u?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-center mb-4",children:[x.jsx("div",{className:"text-4xl mb-2 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.greeting")}),x.jsx("div",{className:"text-ink-muted text-label",children:g("chat.empty.overview")})]}),s?x.jsxs("div",{className:"surface-card p-4 mb-4",children:[x.jsx("div",{className:"text-caption font-bold text-brand uppercase tracking-wider mb-2",children:g("chat.empty.summary.title")}),x.jsx("div",{className:"text-body text-ink-muted leading-relaxed whitespace-pre-wrap",children:s})]}):x.jsx("div",{className:"surface-card p-4 mb-4 text-center",children:x.jsx("div",{className:"text-body text-ink-muted",children:g("chat.empty.summary.none")})}),a?x.jsx(x.Fragment,{children:i&&x.jsxs("button",{onClick:i,disabled:t,"data-testid":"start-learning-btn",className:"btn-3d-brand w-full py-3 text-body font-bold flex items-center justify-center gap-2 disabled:opacity-40",children:[x.jsx(ax,{className:"w-4 h-4"}),x.jsx("span",{children:g("chat.empty.start")})]})}):x.jsxs("div",{className:"surface-card p-4 mb-2","data-testid":"keyless-card",children:[x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.keyless.title")}),x.jsx("div",{className:"text-label text-ink-muted mb-3",children:g("chat.empty.keyless.desc")}),x.jsxs("button",{onClick:o,className:"btn-3d-brand w-full py-2 text-body font-bold flex items-center justify-center gap-2",children:[x.jsx(Es,{className:"w-4 h-4"}),x.jsx("span",{children:g("chat.empty.keyless.btn")})]})]})]}):x.jsxs("div",{className:"text-center mt-16","data-testid":"no-node-selected",children:[x.jsx("div",{className:"text-5xl mb-3 opacity-25",children:"🗺️"}),x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.no_node.title")}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs mx-auto",children:g("chat.empty.no_node.desc")})]})}),e.map(B=>x.jsx("div",{className:p?"":"contents",children:x.jsx("div",{className:p&&B.role==="assistant"?"surface-card p-4 rounded-2xl shadow-card":void 0,children:x.jsx(_3,{msg:B,onApplyProposal:n,onRejectProposal:r,onQuizAnswered:T,quizMastery:C,onPickAction:d,onQuizCompleted:m,speakingMessageId:v.speakingMessageId,speakingSentence:v.speakingSentence,playingSentence:v.playingSentence,streamTexts:v.streamTexts,onSpeak:v.speak})})},B.id)),t&&x.jsxs("div",{className:"flex items-center gap-1.5 text-body text-brand",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"})]})]}),A&&e.length>0&&x.jsxs("button",{onClick:V,"data-testid":"scroll-to-bottom","aria-label":g("chat.scroll.bottom"),title:g("chat.scroll.bottom"),className:"absolute bottom-4 right-4 w-9 h-9 rounded-full bg-ink-strong text-surface-0 shadow-elevated flex items-center justify-center hover:scale-105 active:scale-95 transition-transform msg-enter",children:[x.jsx(Eu,{className:"w-5 h-5"}),t&&x.jsx("span",{className:"absolute -top-0.5 -right-0.5 w-2.5 h-2.5 bg-brand rounded-full border-2 border-[var(--ink-strong)] animate-pulse"})]}),S&&x.jsxs("button",{onClick:P,"data-testid":"save-chat-note-btn","data-selection-popover":!0,style:{left:S.x,top:S.y,transform:S.transform},className:"absolute z-20 px-3 py-1.5 rounded-lg bg-brand text-white text-body font-bold shadow-elevated flex items-center gap-1 hover:bg-brand-light transition msg-enter whitespace-nowrap",title:g("chat.note.add.title"),children:[x.jsx(hi,{className:"w-3 h-3"})," ",g("chat.note.add")]})]})}function wd(e){const t=[];for(const n of e)if(n.role==="assistant")for(let r=0;r<n.parts.length;r++){const s=n.parts[r];s.type==="tool-call"&&s.state==="output-available"&&s.output&&typeof s.output=="object"&&"artifactType"in s.output&&t.push({id:`${n.id}-${r}`,toolName:s.toolName,output:s.output})}return t}function _3({msg:e,onApplyProposal:t,onRejectProposal:n,onQuizAnswered:r,quizMastery:s,onPickAction:i,onQuizCompleted:a,speakingMessageId:o,speakingSentence:u,playingSentence:l,streamTexts:c,onSpeak:f}){const h=Ge(),d=w.useRef(null),m=e.parts.map(v=>v.type==="text"?v.text:"").join("").trim(),p=o===e.id,g=p&&l!=null?l.index:null;w.useEffect(()=>{const v=d.current;if(!v)return;if(g==null){Wn(v);return}const T=qp(c??[],g);if(!T)return;g===0&&jp(v);const C=setTimeout(()=>{const E=Hp(v,T,{within:'[data-testid="part-text"]'});E&&Up(E,v.closest(".overflow-y-auto"))},30);return()=>clearTimeout(C)},[g,c]),w.useEffect(()=>{g==null&&d.current&&Wn(d.current)},[g]);const y=w.useRef(!1);return y.current=g!=null,w.useEffect(()=>()=>{y.current&&Wn(document.body)},[]),e.role==="user"?x.jsx("div",{className:"msg-enter flex justify-end","data-testid":"msg-user","data-msg-id":e.id,children:x.jsxs("div",{className:"max-w-[85%] bg-ink/[0.04] rounded-2xl rounded-br-md px-4 py-2.5",children:[x.jsx(S3,{parts:e.parts}),x.jsx("div",{className:"font-medium text-ink-strong whitespace-pre-wrap select-text text-body",children:e.displayText??e.parts.map((v,T)=>v.type==="text"?x.jsx("span",{children:v.text},T):null)})]})}):x.jsxs("div",{className:"msg-enter",ref:d,"data-testid":"msg-assistant","data-msg-id":e.id,children:[x.jsx("div",{className:"min-w-0 space-y-2.5",children:e.parts.map((v,T)=>x.jsx(I3,{part:v,msgId:e.id,toolCallIdx:T,onApplyProposal:t,onRejectProposal:n,onQuizAnswered:r,quizMastery:s,onPickAction:i,onQuizCompleted:a},T))}),f&&m&&x.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5",children:[x.jsx("button",{onClick:()=>f(e.id,m),"data-testid":p?"speech-stop-btn":"speech-speak-btn","aria-label":h(p?"chat.speech.stop":"chat.speech.speak"),title:h(p?"chat.speech.stop":"chat.speech.speak"),className:`w-7 h-7 rounded-lg flex items-center justify-center transition ${p?"bg-brand/15 text-brand":"text-ink-muted hover:bg-ink/[0.06] hover:text-ink"}`,children:p?x.jsx(vu,{className:"w-3.5 h-3.5"}):x.jsx(gh,{className:"w-4 h-4"})}),p&&u&&u.total>0&&x.jsx("span",{className:"text-caption text-ink-muted",children:h("chat.speech.progress").replace("{n}",String(u.index+1)).replace("{total}",String(u.total))})]})]})}function I3({part:e,msgId:t,toolCallIdx:n,onApplyProposal:r,onRejectProposal:s,onQuizAnswered:i,quizMastery:a,onPickAction:o,onQuizCompleted:u}){const l=Ip(e.type==="text"?e.text:"");if(e.type==="text")return x.jsx("div",{className:"prose prose-sm max-w-[80ch] leading-relaxed break-words [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_img]:max-w-full [&_video]:max-w-full [&_iframe]:max-w-full select-text","data-testid":"part-text",children:x.jsx(gm,{remarkPlugins:l.remarkPlugins,rehypePlugins:l.rehypePlugins,urlTransform:m=>m,components:L3,children:Vp(e.text)})});if(e.type==="reasoning")return x.jsx(N3,{text:e.text});if(e.type!=="tool-call")return null;const{toolName:c,state:f,output:h,error:d}=e;return x.jsx(R3,{toolName:c,state:f,output:h,error:d,msgId:t,toolCallIdx:n,onApplyProposal:r,onRejectProposal:s,onQuizAnswered:i,quizMastery:a,onPickAction:o,onQuizCompleted:u})}function N3({text:e}){const t=Ge(),[n,r]=w.useState(!1);return x.jsxs("div",{className:"rounded-lg bg-surface-1/60 border border-[var(--border-faint)]","data-testid":"part-reasoning",children:[x.jsxs("button",{onClick:()=>r(s=>!s),className:"w-full flex items-center justify-between px-3 py-1.5 text-label font-bold text-ink-muted hover:text-ink-strong transition-colors",children:[x.jsxs("span",{children:[n?"▾":"▸"," ",t("chat.reasoning.label")]}),x.jsx("span",{className:"text-ink-muted font-normal",children:t("chat.reasoning.chars",{n:e.length})})]}),n&&x.jsx("div",{className:"px-3 pb-2.5 text-label text-ink-muted whitespace-pre-wrap leading-relaxed border-t border-[var(--border-faint)]/60 pt-2",children:e})]})}function R3({toolName:e,state:t,output:n,error:r,msgId:s,toolCallIdx:i,onApplyProposal:a,onRejectProposal:o,onQuizAnswered:u,quizMastery:l,onPickAction:c,onQuizCompleted:f}){const h=Ge(),m=(e==="record_answer"||e==="mark_mastered")&&t==="output-available"&&typeof n=="object"&&n!==null?n:null;if(m!=null&&m.proposalId){const y=m.status;return y==="applied"?x.jsxs("div",{className:"proposal-card rounded-xl border border-gold/30 bg-gold/5 p-3 flex items-center gap-2","data-testid":"part-proposal",children:[x.jsx(Tu,{className:"w-4 h-4 text-gold shrink-0"}),x.jsx("span",{className:"text-body font-bold text-ink",children:h("chat.proposal.applied")})]}):y==="rejected"?x.jsxs("div",{className:"proposal-card rounded-xl border border-ink/10 bg-ink/5 p-3 flex items-center gap-2","data-testid":"part-proposal",children:[x.jsx(F1,{className:"w-4 h-4 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-body text-ink-muted",children:h("chat.proposal.rejected")})]}):x.jsxs("div",{className:"proposal-card relative rounded-xl border border-brand/30 bg-brand/5 overflow-hidden","data-testid":"part-proposal",children:[x.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-brand"}),x.jsxs("div",{className:"pl-4 pr-3 py-3",children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[x.jsx("span",{className:"flex items-center justify-center w-7 h-7 rounded-lg bg-brand/15 text-brand shrink-0",children:x.jsx($1,{className:"w-4 h-4"})}),x.jsx("span",{className:"text-lead font-bold text-ink",children:h("chat.proposal.mastered.title")})]}),m.message&&x.jsx("div",{className:"text-body text-ink mb-2 leading-relaxed",children:m.message}),x.jsx("div",{className:"text-caption text-ink-muted mb-3",children:h("chat.proposal.mastered.hint")}),x.jsxs("div",{className:"flex gap-2",children:[x.jsxs("button",{onClick:()=>a==null?void 0:a(m.proposalId,s,i),"data-testid":"proposal-apply",className:"btn-3d-brand px-4 py-1.5 text-body",children:[x.jsx(Tn,{className:"w-3.5 h-3.5 inline"}),h("chat.proposal.confirm")]}),x.jsx("button",{onClick:()=>o==null?void 0:o(m.proposalId,s,i),"data-testid":"proposal-reject",className:"btn-3d-neutral px-4 py-1.5 text-body",children:h("chat.proposal.later")})]})]})]})}if(t==="output-available"&&n&&typeof n=="object"&&"artifactType"in n){const y=n.artifactType;return x.jsx("div",{className:"my-1 max-w-full","data-testid":`inline-artifact-${y}`,"data-tool":e,children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(A3,{data:n,onQuizAnswered:u,quizMastery:l,onPickAction:c,onQuizCompleted:f})})})}const g=M3(e,h);return x.jsx("div",{className:"inline-flex items-center gap-1.5 text-label px-2.5 py-1 rounded-md bg-surface-1/60 border border-[var(--border-faint)]","data-testid":"part-tool","data-tool":e,"data-state":t,children:t==="input-available"?x.jsxs(x.Fragment,{children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsxs("span",{className:"text-ink-muted",children:[g,"…"]})]}):t==="output-error"?x.jsxs(x.Fragment,{children:[x.jsx(ah,{className:"w-3.5 h-3.5 text-warning shrink-0"}),x.jsxs("span",{className:"text-warning",children:[g,": ",r]})]}):x.jsxs(x.Fragment,{children:[x.jsx(xh,{className:"w-3.5 h-3.5 text-ink-faint shrink-0"}),x.jsx("span",{className:"text-ink-muted",children:g})]})})}const L3={pre({children:e,...t}){return x.jsx(e0,{...t,children:e})},a({children:e,...t}){return x.jsx("a",{...t,target:"_blank",rel:"noopener noreferrer",children:e})},table({children:e}){return x.jsx("div",{className:"overflow-x-auto my-4",children:x.jsx("table",{children:e})})}};function M3(e,t){return{get_node_info:t("chat.tool.get_node_info"),record_answer:t("chat.tool.record_answer"),mark_mastered:t("chat.tool.mark_mastered"),show_concept_map:t("chat.tool.show_concept_map"),generate_quiz:t("chat.tool.generate_quiz"),compare_table:t("chat.tool.compare_table"),draw_diagram:t("chat.tool.draw_diagram"),show_code_walkthrough:t("chat.tool.show_code_walkthrough")}[e]??e}const ui={maxPerMessage:4,maxImageBytes:5*1024*1024,maxTextBytes:256*1024},P3=new Set(["txt","md","markdown","rst","org","adoc","log","csv","tsv","json","yaml","yml","toml","ini","env","py","js","mjs","cjs","ts","tsx","jsx","go","rs","java","c","h","cpp","hpp","cs","rb","sh","bash","zsh","ps1","sql","html","htm","css","scss","vue","svelte","kt","swift","php","lua","r","dart","scala","clj","ex","exs","erl","hs","ml","jl","m","mm","pl","vb","bat","dockerfile"]);function Sd(e){const t=e.lastIndexOf(".");return t<=0||t===e.length-1?"":e.slice(t+1).toLowerCase()}function D3(e,t,n){return t&&t.startsWith("image/")||["png","jpg","jpeg","webp","gif","bmp"].includes(Sd(e))?n>ui.maxImageBytes?{ok:!1,reason:"tooLargeImage"}:{ok:!0,kind:"image"}:P3.has(Sd(e))?n>ui.maxTextBytes?{ok:!1,reason:"tooLargeText"}:{ok:!0,kind:"text"}:{ok:!1,reason:"unsupported"}}function O3(e,t){const n=e.length,r=n*2,s=new ArrayBuffer(44+r),i=new DataView(s),a=(u,l)=>{for(let c=0;c<l.length;c++)i.setUint8(u+c,l.charCodeAt(c))};a(0,"RIFF"),i.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),i.setUint32(16,16,!0),i.setUint16(20,1,!0),i.setUint16(22,1,!0),i.setUint32(24,t,!0),i.setUint32(28,t*2,!0),i.setUint16(32,2,!0),i.setUint16(34,16,!0),a(36,"data"),i.setUint32(40,r,!0);let o=44;for(let u=0;u<n;u++){const l=e[u]<=-1?-1:e[u]>=1?1:e[u];i.setInt16(o,Math.round(l*32767),!0),o+=2}return s}function F3(e,t){const n=Math.floor(e.length/t),r=new Float32Array(n);for(let s=0;s<n;s++){const i=s*t,a=Math.floor(i),o=i-a,u=e[a]??0,l=e[a+1]??u;r[s]=u+(l-u)*o}return r}function B3(e,t,n={}){if(e.length===0||e.length!==t.length)return e;const r=n.threshold??.012;let s=0;for(;s<e.length-1&&t[s]<r;)s+=1;let i=e.length;for(;i>s+1&&t[i-1]<r;)i-=1;return e.slice(s,i)}function j3(e={}){const t=e.rmsThreshold??.015,n=e.minSpeechMs??300,r=e.silenceMs??1200,s=e.maxMs??6e4,i=e.autoStop!==!1;let a=null,o=0,u=null,l=null,c=!1;return{feed(f,h){a==null&&(a=h);const d=l==null?0:Math.max(0,h-l);if(l=h,f>=t)o+=d,o>=n&&(c=!0,u=h);else if(i&&c&&u!=null&&h-u>=r)return"auto-stop";return i&&h-a>=s?"auto-stop":"listening"},hadSpeech(){return c}}}const Za=16e3;function H3(e,t={}){const[n,r]=w.useState(!1),[s,i]=w.useState(!1),[a,o]=w.useState(0),[u,l]=w.useState(null),[c,f]=w.useState(null),h=w.useRef(null),d=w.useRef(null),m=w.useRef(null),p=w.useRef([]),g=w.useRef([]),y=w.useRef(!1),v=w.useRef(null),T=w.useRef(0),C=w.useRef(e);C.current=e;const E=w.useRef(t);E.current=t;const k=w.useRef(!1),_=w.useRef(!1),A=w.useCallback(()=>{var j,P,L;y.current=!1,(j=m.current)==null||j.disconnect(),m.current=null,(P=d.current)==null||P.getTracks().forEach(F=>F.stop()),d.current=null,(L=h.current)==null||L.close().catch(()=>{}),h.current=null,p.current=[],g.current=[],v.current=null,o(0)},[]),I=w.useCallback(()=>{var K;const j=p.current,P=g.current,L=((K=v.current)==null?void 0:K.hadSpeech())??!1;p.current=[],g.current=[];let F=0;for(const D of j)F+=D.length;if(A(),r(!1),F===0)return;if(!L){f("no-speech");return}const V=B3(j,P);let B=0;for(const D of V)B+=D.length;const q=new Float32Array(B);let R=0;for(const D of V)q.set(D,R),R+=D.length;const $=O3(q,Za);i(!0),f(null),window.api.asrTranscribe($,E.current.locale).then(D=>{D.ok?C.current(D.text):f(D.reason)}).catch(()=>f("asr-failed")).finally(()=>i(!1))},[A]),S=w.useCallback(()=>{y.current&&I()},[I]),M=w.useCallback(()=>{y.current||k.current||(l(null),k.current=!0,(async()=>{var j;try{if(((j=navigator.mediaDevices)==null?void 0:j.getUserMedia)==null){l(window.isSecureContext?"mic-unavailable":"mic-insecure-context");return}const P=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}}),L=window.AudioContext??window.webkitAudioContext;let F;try{F=new L({sampleRate:Za})}catch{F=new L}h.current=F,d.current=P,y.current=!0,v.current=j3({autoStop:E.current.autoStop!==!1});const V=F.createMediaStreamSource(P),B=F.createScriptProcessor(4096,1,1);m.current=B;const q=F.sampleRate/Za;B.onaudioprocess=$=>{var J;if(!y.current)return;const K=$.inputBuffer.getChannelData(0),D=q===1?new Float32Array(K):F3(K,q);p.current.push(D);let Z=0;for(let X=0;X<D.length;X++)Z+=D[X]*D[X];const oe=Math.sqrt(Z/D.length);g.current.push(oe),T.current=T.current*.7+oe*.3,o(Math.min(1,T.current*8)),e1(Math.min(1,T.current*8)),((J=v.current)==null?void 0:J.feed(oe,performance.now()))==="auto-stop"&&y.current&&I()},V.connect(B);const R=F.createGain();R.gain.value=0,B.connect(R),R.connect(F.destination),r(!0),_.current&&(_.current=!1,I())}catch(P){A(),r(!1),l(P instanceof Error?P.message:String(P))}finally{k.current=!1}})())},[A,I]),N=w.useCallback(()=>{y.current?S():k.current&&(_.current=!0)},[S]);return w.useEffect(()=>()=>{y.current&&A()},[A]),{listening:n,transcribing:s,level:a,startError:u,transcribeError:c,clearTranscribeError:()=>f(null),beginHold:M,endHold:N}}function U3({onGotoSettings:e}){var p;const t=Ge(),[n,r]=w.useState(!1),[s,i]=w.useState(null),[a,o]=w.useState(""),[u,l]=w.useState(""),c=w.useRef(null),f=w.useCallback(async()=>{var g,y;try{const[v,T,C,E]=await Promise.all([le.getProviderPresets(),le.listCustomProviders(),le.getSetting("active_provider"),le.getSetting("active_model")]),k=C??"glm",_=await Promise.all(v.map(async j=>await le.getSetting(j.apiKeySetting)!=null)),A=new Set;v.forEach((j,P)=>{(_[P]||j.id===k)&&A.add(j.id)});const I=[],S=(j,P,L)=>{for(const F of L)I.push({providerId:j,providerLabel:P,modelId:F.id,modelLabel:F.label,vision:(F.capabilities??[]).includes("vision"),contextWindow:F.contextWindow})};for(const j of v)A.has(j.id)&&S(j.id,j.label,j.models);const M=T.filter(j=>j.kind==="llm");for(const j of M)S(j.id,j.label,j.models);const N=E??"";if(N&&!I.some(j=>j.providerId===k&&j.modelId===N)){const j=((g=v.find(P=>P.id===k))==null?void 0:g.label)??((y=M.find(P=>P.id===k))==null?void 0:y.label)??k;I.unshift({providerId:k,providerLabel:j,modelId:N,modelLabel:N,vision:!0,contextWindow:null})}i(I),o(k),l(N)}catch{i([])}},[]);w.useEffect(()=>{f();const g=()=>void f();return window.addEventListener("llm-config-changed",g),()=>window.removeEventListener("llm-config-changed",g)},[f]),w.useEffect(()=>{if(!n)return;const g=v=>{var T;v.target instanceof Node&&((T=c.current)==null?void 0:T.contains(v.target))!==!0&&r(!1)},y=v=>{v.key==="Escape"&&r(!1)};return document.addEventListener("pointerdown",g),document.addEventListener("keydown",y),()=>{document.removeEventListener("pointerdown",g),document.removeEventListener("keydown",y)}},[n]);const h=async g=>{if(r(!1),!(g.providerId===a&&g.modelId===u))try{await le.setSetting("active_provider",g.providerId),await le.setSetting("active_model",g.modelId),o(g.providerId),l(g.modelId),window.dispatchEvent(new Event("llm-config-changed"))}catch{}},d=((p=s==null?void 0:s.find(g=>g.providerId===a&&g.modelId===u))==null?void 0:p.modelLabel)??u??t("model.picker.label"),m=[];for(const g of s??[]){const y=m[m.length-1];y&&y.label===g.providerLabel?y.rows.push(g):m.push({label:g.providerLabel,rows:[g]})}return x.jsxs("div",{ref:c,className:"relative","data-testid":"composer-model",children:[x.jsxs("button",{type:"button",onClick:()=>r(!n),"aria-haspopup":"menu","aria-expanded":n,"data-tooltip":t("model.picker.label"),"data-testid":"composer-model-trigger",className:"flex items-center gap-1 max-w-[13rem] px-1.5 py-0.5 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:[x.jsx(M1,{className:"w-3 h-3 shrink-0 coarse-only","aria-hidden":!0}),x.jsx("span",{className:"truncate tb-label",children:d}),x.jsx(sh,{className:`w-3 h-3 shrink-0 tb-chevron transition-transform ${n?"":"rotate-180"}`})]}),n&&x.jsxs("div",{role:"menu","aria-label":t("model.picker.label"),"data-testid":"composer-model-menu",className:"absolute bottom-full right-0 mb-1.5 z-50 w-64 max-w-[calc(100vw-1.5rem)] max-h-72 overflow-y-auto bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] py-1.5",children:[m.length===0&&x.jsx("div",{className:"px-3 py-2 text-caption text-ink-faint",children:t("model.picker.noneConfigured")}),m.map(g=>x.jsxs("div",{role:"group","aria-label":g.label,children:[x.jsx("div",{className:"px-3 pt-1.5 pb-0.5 text-caption font-bold text-ink-faint",children:g.label}),g.rows.map(y=>{const v=y.providerId===a&&y.modelId===u;return x.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":v,onClick:()=>void h(y),className:`w-full flex items-center gap-1.5 px-3 py-1.5 text-left transition-colors ${v?"text-brand":"text-ink-strong hover:bg-ink/[0.06]"}`,children:[x.jsx(Tn,{className:`w-3.5 h-3.5 shrink-0 ${v?"opacity-100":"opacity-0"}`}),x.jsx("span",{className:"flex-1 truncate text-label",children:y.modelLabel}),y.vision&&x.jsx(U1,{className:"w-3 h-3 shrink-0 text-ink-faint","aria-label":t("model.picker.vision")})]},`${y.providerId}:${y.modelId}`)})]},g.label)),x.jsx("div",{className:"border-t border-[var(--border)] mt-1 pt-1",children:x.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{r(!1),e()},className:"w-full flex items-center gap-1.5 px-3 py-1.5 text-left text-label text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:[x.jsx(lx,{className:"w-3.5 h-3.5"}),t("model.picker.manage")]})})]})]})}const zo=5.5,Ad=2*Math.PI*zo,lr=["system","node","learner","history","draft"],Cd={system:"bg-accent",node:"bg-brand",learner:"bg-gold",history:"bg-ink/50",draft:"bg-exam"};function z3({info:e,historyTokens:t,draftTokens:n}){const r=Ge(),[s,i]=w.useState(!1),a=w.useRef(null);if(w.useEffect(()=>{!(e!=null&&e.contextWindow)&&s&&i(!1)},[e==null?void 0:e.contextWindow,s]),w.useEffect(()=>{if(!s)return;const h=m=>{var p;m.target instanceof Node&&((p=a.current)==null?void 0:p.contains(m.target))!==!0&&i(!1)},d=m=>{m.key==="Escape"&&i(!1)};return document.addEventListener("pointerdown",h),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",h),document.removeEventListener("keydown",d)}},[s]),!e)return null;const o={system:e.systemTokens,node:e.nodeTokens,learner:e.learnerTokens,history:t,draft:n},u=lr.reduce((h,d)=>h+o[d],0),l=xx(u,e.contextWindow),c=l!==null&&l>=85,f=bx(lr.map(h=>o[h]),l??0);return x.jsxs("span",{ref:a,className:"relative inline-flex items-center","data-testid":"composer-context",children:[x.jsxs("button",{type:"button",onClick:()=>i(!s),disabled:e.contextWindow===null,"aria-label":r("context.aria",{p:l!==null?`${l}%`:ar(u)}),"aria-haspopup":"dialog","aria-expanded":s,"data-testid":"composer-context-trigger","data-tooltip":e.contextWindow===null?`${r("context.label")} ~${ar(u)} · ${r("context.unknownWindow")}`:r("context.aria",{p:`${l}%`}),className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium transition-colors ${c?"text-warning":"text-ink-muted"} hover:bg-ink/[0.06] disabled:hover:bg-transparent`,children:[x.jsxs("svg",{viewBox:"0 0 14 14",width:"14",height:"14","aria-hidden":!0,className:"shrink-0",children:[x.jsx("circle",{cx:"7",cy:"7",r:zo,fill:"none",strokeWidth:"2",className:"stroke-ink/20"}),x.jsx("circle",{cx:"7",cy:"7",r:zo,fill:"none",strokeWidth:"2",stroke:"currentColor",strokeLinecap:"round",strokeDasharray:`${Ad*(l??100)/100} ${Ad}`,transform:"rotate(-90 7 7)"})]}),l!==null?x.jsxs("span",{className:"tb-label",children:[l,"%"]}):x.jsxs("span",{className:"tb-label",children:["~",ar(u)]})]}),s&&e.contextWindow!==null&&x.jsxs("div",{role:"dialog","aria-label":r("context.label"),"data-testid":"composer-context-panel",className:"absolute bottom-full right-0 mb-1.5 z-50 w-64 max-w-[calc(100vw-1.5rem)] bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] p-3",children:[x.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[x.jsx("span",{className:"text-label font-bold text-ink-strong",children:r("context.label")}),x.jsxs("span",{className:`text-caption ${c?"text-warning":"text-ink-muted"}`,children:[r("context.approx")," ",ar(u)," / ",ar(e.contextWindow)]})]}),x.jsx("div",{className:"flex h-2 rounded-full overflow-hidden bg-ink/10 mb-2",role:"img","aria-label":`${l}%`,children:lr.map(h=>f[lr.indexOf(h)]>0?x.jsx("div",{className:Cd[h],style:{width:`${f[lr.indexOf(h)]}%`}},h):null)}),x.jsx("dl",{className:"space-y-1",children:lr.map(h=>x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsxs("dt",{className:"flex items-center gap-1.5 text-caption text-ink-muted",children:[x.jsx("span",{className:`w-2 h-2 rounded-sm ${Cd[h]}`,"aria-hidden":!0}),r(`context.${h}`)]}),x.jsxs("dd",{className:"text-caption text-ink-strong tabular-nums",children:["~",ar(o[h])]})]},h))})]})]})}const Vo={glm:{fast:e=>{e.thinking={type:"disabled"},e.reasoning_effort="low"},deep:e=>{e.thinking={type:"enabled"}}},qwen:{fast:e=>{e.enable_thinking=!1},deep:e=>{e.enable_thinking=!0}},siliconcloud:{fast:e=>{e.enable_thinking=!1},deep:e=>{e.enable_thinking=!0}}};function V3(e,t,n){if(e==="openai"||e in Vo)return e;const r=(t??"").toLowerCase(),s=(n??"").toLowerCase();return r.includes("bigmodel.cn")||r.includes("z.ai")||s.startsWith("glm")?"glm":r.includes("dashscope")||s.startsWith("qwen")?"qwen":r.includes("siliconflow")?"siliconcloud":e}function q3(e,t,n){return t==="anthropic"||t==="google"||e==="openai"||e in Vo?!0:V3(e,n==null?void 0:n.baseUrl,n==null?void 0:n.model)in Vo}const Ja=[{value:"",labelKey:"effort.auto.label",descKey:"effort.auto.desc"},{value:"fast",labelKey:"effort.fast.label",descKey:"effort.fast.desc"},{value:"deep",labelKey:"effort.deep.label",descKey:"effort.deep.desc"}];function $3(){const e=Ge(),[t,n]=w.useState(!1),[r,s]=w.useState(""),[i,a]=w.useState(!0),o=w.useRef(null),u=w.useRef(null),[l,c]=w.useState("right"),[f,h]=w.useState(0),d=w.useRef(0),[m,p]=w.useState(0);w.useLayoutEffect(()=>{if(!t){p(0),d.current=0,h(0);return}const T=u.current;if(!T)return;const C=T.getBoundingClientRect(),E=C.left-d.current,k=C.right-d.current,_=window.innerWidth;if(m===0){if(E<8&&k<=_-8){c("left"),p(1);return}if(k>_-8&&E>=8){c("right"),p(1);return}p(1)}const A=Math.min(0,_-8-k)+Math.max(0,8-E);A!==d.current&&(d.current=A,h(A))},[t,m]);const g=w.useCallback(async()=>{var T;try{const[C,E,k,_,A]=await Promise.all([le.getSetting("active_provider"),le.getSetting("reasoning_effort"),le.getProviderPresets(),le.listCustomProviders(),le.getSetting("active_model")]),I=C??"glm",S=_.find(j=>j.id===I),M=((T=k.find(j=>j.id===I))==null?void 0:T.protocol)??(S==null?void 0:S.protocol)??"openai-compatible";a(q3(I,M,{baseUrl:S==null?void 0:S.baseUrl,model:A??(S==null?void 0:S.defaultModel)}));const N=E??"";s(N==="fast"||N==="deep"?N:"")}catch{a(!1)}},[]);w.useEffect(()=>{g();const T=()=>void g();return window.addEventListener("llm-config-changed",T),()=>window.removeEventListener("llm-config-changed",T)},[g]),w.useEffect(()=>{if(!t)return;const T=E=>{var k;E.target instanceof Node&&((k=o.current)==null?void 0:k.contains(E.target))!==!0&&n(!1)},C=E=>{E.key==="Escape"&&n(!1)};return document.addEventListener("pointerdown",T),document.addEventListener("keydown",C),()=>{document.removeEventListener("pointerdown",T),document.removeEventListener("keydown",C)}},[t]);const y=async T=>{if(n(!1),T!==r){s(T);try{await le.setSetting("reasoning_effort",T)}catch{s(r)}}},v=Ja.find(T=>T.value===r)??Ja[0];return x.jsxs("div",{ref:o,className:"relative","data-testid":"composer-effort",children:[x.jsxs("button",{type:"button",onClick:()=>!!i&&n(!t),disabled:!i,"aria-haspopup":"menu","aria-expanded":t,"data-testid":"composer-effort-trigger","data-tooltip":e(i?"effort.label":"effort.unsupported"),className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium transition-colors ${r?"text-accent":"text-ink-muted"} ${i?"hover:text-ink-strong hover:bg-ink/[0.06]":"opacity-40 cursor-not-allowed"}`,children:[x.jsx(P1,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"truncate tb-label",children:e(v.labelKey)}),x.jsx(sh,{className:`w-3 h-3 shrink-0 tb-chevron transition-transform ${t?"":"rotate-180"}`})]}),t&&x.jsx("div",{ref:u,role:"menu","aria-label":e("effort.label"),"data-testid":"composer-effort-menu",style:{transform:f?`translateX(${f}px)`:void 0},className:`absolute bottom-full ${l==="right"?"right-0":"left-0"} mb-1.5 z-50 w-60 max-w-[calc(100vw-1.5rem)] bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] py-1.5`,children:Ja.map(T=>{const C=T.value===r;return x.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":C,onClick:()=>void y(T.value),className:`w-full flex items-start gap-1.5 px-3 py-1.5 text-left transition-colors ${C?"text-brand":"text-ink-strong hover:bg-ink/[0.06]"}`,children:[x.jsx(Tn,{className:`w-3.5 h-3.5 shrink-0 mt-0.5 ${C?"opacity-100":"opacity-0"}`}),x.jsxs("span",{className:"flex-1",children:[x.jsx("span",{className:"block text-label font-bold",children:e(T.labelKey)}),x.jsx("span",{className:"block text-caption text-ink-faint",children:e(T.descKey)})]})]},T.value||"auto")})})]})}const W3=w.lazy(()=>Se(()=>import("./VoicePanel-BFuMIduE.js"),__vite__mapDeps([33,1,2,31]),import.meta.url).then(e=>({default:e.VoicePanel}))),Y3={direct:"soul.direct",guide:"soul.guide",practice:"soul.practice"},G3={direct:vn,guide:oh,practice:W1},K3={direct:"soul.direct.desc",guide:"soul.guide.desc",practice:"soul.practice.desc"},X3=["image/png","image/jpeg","image/webp","image/gif",".txt",".md",".markdown",".rst",".org",".adoc",".log",".csv",".tsv",".json",".yaml",".yml",".toml",".ini",".py",".js",".mjs",".cjs",".ts",".tsx",".jsx",".go",".rs",".java",".c",".h",".cpp",".hpp",".cs",".rb",".sh",".sql",".html",".css",".scss",".vue",".svelte",".kt",".swift",".php"].join(",");let _d=0;function Q3({nodeId:e,agentReady:t,streaming:n,souls:r,activeSoul:s,starterPrompts:i,onPickSoul:a,onSend:o,onStop:u,onLogFriction:l,onGotoSettings:c,insertText:f,historyTokens:h}){const d=Ge(),m=vh(),[p,g]=w.useState(""),[y,v]=w.useState([]),[T,C]=w.useState(null),[E,k]=w.useState(null),[_,A]=w.useState(!1),I=w.useRef(null),S=w.useRef(0),[M,N]=w.useState(!0);w.useEffect(()=>{le.getSetting("asr_auto_stop").then(te=>N(te!=="0"))},[]);const[j,P]=w.useState(!1);w.useEffect(()=>(Nl(j),()=>Nl(!1)),[j]);const[L,F]=w.useState(""),[V,B]=w.useState(!1),[q,R]=w.useState(null),$=H3(te=>{F(te),B(!0)},{locale:m,autoStop:M}),K=$.startError??$.transcribeError;w.useEffect(()=>{if(!K)return;R(d(K==="no-speech"?"chat.speech.no_speech":K==="model-missing"?"chat.speech.asr_model_missing":K==="engine-unavailable"?"chat.speech.engine_unavailable":K==="custom-provider-missing"?"chat.speech.custom_provider_missing":K==="groq-key-missing"?"chat.speech.groq_key_missing":K==="azure-key-missing"?"chat.speech.azure_stt_key_missing":K==="azure-region-missing"?"chat.speech.azure_stt_region_missing":K==="mic-insecure-context"?"chat.speech.asr_insecure_context":K==="mic-unavailable"?"chat.speech.asr_start_fail":"chat.speech.asr_failed")),$.clearTranscribeError()},[K,$,d]);const D=q?"error":$.listening?"recording":$.transcribing?"transcribing":V?"review":"idle",Z=(te,Ie,be)=>{t1(),o(te,Ie,be)},oe=w.useCallback(()=>{F(""),B(!1),R(null)},[]),z=w.useCallback(()=>{P(!1),oe()},[oe]),J=()=>{const te=L.trim();!te||n||!e||(Z(te),z())};w.useEffect(()=>{f&&g(te=>te.trim()?`${te}
449
+ `?!0:IC.test(t)}function $p(e,t,n,r,s){const a=r??e,o=a.top+a.height/2;return!s&&a.right+8+n<=t?{left:a.right+8,top:o,transform:"translate(0, -50%)"}:!s&&e.left-8-n>=0?{left:e.left-8,top:o,transform:"translate(-100%, -50%)"}:{left:Math.min(Math.max(e.left,0),Math.max(0,t-n)),top:a.bottom+8,transform:"translate(0, 0)"}}const hd="lookatstudy-tts-settings-changed";function md(e){const t=n=>{const r=n.toLowerCase();return r==="zh-cn"||r==="zh_cn"||r==="zh"?0:r.startsWith("zh")?1:2};return[...e].sort((n,r)=>t(n.lang)-t(r.lang)||n.lang.localeCompare(r.lang)||n.name.localeCompare(r.name))}function pd(e,t){if(e.length===0)return null;const n=t==null?void 0:t.trim();if(n){const i=e.find(a=>a.name===n);if(i)return i}const r=md(e.filter(i=>i.default));return r.length>0&&PC(r[0].lang)?r[0]:md(e)[0]??null}function PC(e){return e.toLowerCase().startsWith("zh")}function e4(e){return`${e.name} · ${e.lang}`}const DC=[["\\leq","小于等于"],["\\le","小于等于"],["\\geq","大于等于"],["\\ge","大于等于"],["\\neq","不等于"],["\\ne","不等于"],["\\approx","约等于"],["\\equiv","恒等于"],["\\pm","正负"],["\\times","乘以"],["\\cdot","点乘"],["\\div","除以"],["\\to","趋于"],["\\rightarrow","趋于"],["\\Rightarrow","推出"],["\\infty","无穷"],["\\sum","求和"],["\\prod","连乘"],["\\int","积分"],["\\lim","极限"],["\\log","对数"],["\\ln","自然对数"],["\\exp","指数"],["\\in","属于"],["\\subset","包含于"],["\\cup","并"],["\\cap","交"],["\\forall","任意"],["\\exists","存在"],["\\partial","偏导"],["\\nabla","梯度"],["\\angle","角"],["\\degree","度"],["\\cdots","点点点"],["\\ldots","点点点"]],OC={alpha:"阿尔法",beta:"贝塔",gamma:"伽马",delta:"德尔塔",epsilon:"艾普西隆",zeta:"泽塔",eta:"伊塔",theta:"西塔",iota:"约塔",kappa:"卡帕",lambda:"拉姆达",mu:"缪",nu:"纽",xi:"克西",pi:"派",rho:"柔",sigma:"西格马",tau:"陶",phi:"斐",chi:"凯",psi:"普西",omega:"欧米伽"};function FC(e,t){if(e[t]!=="{")return null;let n=0;for(let r=t;r<e.length;r++)if(e[r]==="{")n++;else if(e[r]==="}"&&(n--,n===0))return{body:e.slice(t+1,r),end:r+1};return null}function $r(e,t){const n=FC(e,t);return n||{body:e[t]??"",end:t+1}}function BC(e){let t=e;t=t.replace(/\\(?:left|right|displaystyle|limits)\b/g," "),t=t.replace(/\\[,;!\s]|\\quad|\\qquad|~/g," ");for(let n=0;n<12;n++){let r=t;r=r.replace(/\\[dt]?frac(?![A-Za-z])/g,"\\frac");{let s;for(;(s=r.indexOf("\\frac"))>=0;){const i=$r(r,s+5),a=$r(r,i.end);r=r.slice(0,s)+`${i.body} 分之 ${a.body} `+r.slice(a.end)}}{let s;for(;(s=r.indexOf("\\binom"))>=0;){const i=$r(r,s+6),a=$r(r,i.end);r=r.slice(0,s)+`${i.body} 取 ${a.body} `+r.slice(a.end)}}r=r.replace(/\\sqrt\s*\[( {[^{}]*} |[^\s\\]+)\s*\]\s*/g,(s,i)=>`${i.trim()} 次根号 `);{let s;for(;(s=r.indexOf("\\sqrt"))>=0;){const i=$r(r,s+5);r=r.slice(0,s)+`根号 ${i.body} `+r.slice(i.end)}}if(r=r.replace(/\\(?:mathbf|mathbb|mathrm|mathit|boldsymbol|text|operatorname)\s*/g,s=>s.startsWith("\\text")?"":" "),r===t){t=r;break}t=r}for(let n=0;n<8;n++){const r=t.replace(/(\\frac|[\w)\]}]|\s)\s*\^\s*(\{[^{}]*\}|[^\s])|(\\frac|[\w)\]}]| )\s*_\s*(\{[^{}]*\}|[^\s])/g,(s,i,a,o,u)=>a!==void 0?`${i} 的 ${a.replace(/[{}]/g,"")} 次方`:`${o} 下标 ${u.replace(/[{}]/g,"")}`);if(r===t)break;t=r}for(const[n,r]of DC)t=t.split(n).join(` ${r} `);return t=t.replace(/\\([A-Za-z]+)\b/g,(n,r)=>` ${OC[r]??r} `),t=t.replace(/[{}]/g," "),t.replace(/\s+/g," ").trim()}function jC(e){return e.replace(/\$\$([^$]+)\$\$|\$([^$]+)\$/g,(t,n,r)=>{const s=BC(n??r??"");return s?` ${s} `:""})}const gd=new WeakMap;let Wp=null;function Wa(e){Wp=e}function HC(){return Wp}const Yp=1024;function Gp(e){let t=gd.get(e);return t||(t=e.createAnalyser(),t.fftSize=Yp,t.smoothingTimeConstant=.55,gd.set(e,t)),t}function UC(e,t){try{const n=Gp(e);t.connect(n),n.connect(e.destination)}catch{try{t.connect(e.destination)}catch{}}}const br=1024,xd=512,zC=3500,VC=7500,qC=.3,$C=.16,WC=1400,YC=2800,Xi=70,Kp=new Float64Array(br);for(let e=0;e<br;e++)Kp[e]=.5*(1-Math.cos(2*Math.PI*e/(br-1)));function GC(e,t){const n=e.length;for(let r=1,s=0;r<n;r++){let i=n>>1;for(;s&i;i>>=1)s^=i;if(s|=i,r<s){const a=e[r];e[r]=e[s],e[s]=a;const o=t[r];t[r]=t[s],t[s]=o}}for(let r=2;r<=n;r<<=1){const s=-2*Math.PI/r,i=Math.cos(s),a=Math.sin(s),o=r>>1;for(let u=0;u<n;u+=r){let l=1,c=0;for(let f=0;f<o;f++){const h=e[u+f],d=t[u+f],m=e[u+f+o],p=t[u+f+o],g=m*l-p*c,y=m*c+p*l;e[u+f]=h+g,t[u+f]=d+y,e[u+f+o]=h-g,t[u+f+o]=d-y;const v=l*i-c*a;c=l*a+c*i,l=v}}}}function KC(e,t){const n=e.length;let r=0;const s=new Float64Array(n),i=new Float64Array(n);for(let p=0;p<n;p++){const g=e[p];r+=Math.abs(g),s[p]=g*Kp[p]}GC(s,i);const a=n>>1,o=t/n,u=new Float64Array(a);let l=0,c=0,f=0,h=0,d=0,m=0;for(let p=0;p<a;p++){const g=p*o;if(g>=t/2-o)break;const y=Math.hypot(s[p],i[p])/a;u[p]=y,l+=y,g>=zC&&g<VC&&(c+=y),g>=_l.lo&&g<_l.hi?(f+=y,h+=y*g):g>=Il.lo&&g<Il.hi&&(d+=y,m+=y*g)}return{level:n>0?Math.min(1,r/n/.22):0,f1:f>0?h/f:400,f2:d>0?m/d:800,hfRatio:l>0?c/l:0}}function XC(e,t){return e.level<=Xg?"closed":e.hfRatio>=qC?"SS":e.hfRatio>=$C&&e.level<.45?"FV":t==="closed"&&e.f2>=WC&&e.f2<=YC?"L":Qg(e.f1,e.f2,e.level)}function QC(e,t){const n=[],r=(c,f,h,d)=>{if(f<=0)return;const m=n[n.length-1];if(m&&m.viseme===h&&Math.abs(m.t+m.dur-c)<1e-9){m.dur+=f,m.level=Math.max(m.level,d);return}n.push({t:c,dur:f,viseme:h,level:d})};if(e.length<br)return{cues:[{t:0,dur:Math.max(0,e.length/t),viseme:"closed",level:0}],duration:Math.max(0,e.length/t)};let s="closed";const i=xd/t;for(let c=0;c+br<=e.length;c+=xd){const f=e.subarray(c,c+br),h=KC(f,t),d=XC(h,s);r(c/t,i,d,h.level),s=d}const a=e.length/t,o=n.length>0?n[n.length-1].t+n[n.length-1].dur:0;o<a-1e-9&&r(o,a-o,"closed",0);const u=n[0];if(u&&u.viseme!=="closed")if(u.dur<=Xi/1e3)u.viseme="closed";else{const c=Math.min(u.dur*.5,Xi/1e3);u.dur-=c,u.t+=c,n.unshift({t:0,dur:c,viseme:"closed",level:0})}const l=n[n.length-1];if(l&&l.viseme!=="closed"){const c=Math.min(l.dur*.5,Xi/1e3);l.dur-=c,n.push({t:l.t+l.dur,dur:c,viseme:"closed",level:0})}for(let c=n.length-1;c>=1;c--){const f=n[c];if(f.viseme!=="closed"&&f.dur<Xi/1e3){const h=n[c-1];h.dur+=f.dur,n.splice(c,1)}}return{cues:n,duration:a}}function ZC(e){const t=[...e].filter(s=>s.dur>0&&Number.isFinite(s.t)).sort((s,i)=>s.t-i.t),n=[];let r=0;for(const s of t){const i=Math.max(0,s.t/1e3),a=s.dur/1e3;i>r+1e-9&&n.push({t:r,dur:i-r,viseme:"closed",level:0});const o=n[n.length-1];o&&o.viseme===s.viseme&&Math.abs(o.t+o.dur-i)<1e-9?(o.dur+=a,o.level=Math.max(o.level,Math.min(1,Math.max(0,s.level)))):n.push({t:i,dur:a,viseme:s.viseme,level:Math.min(1,Math.max(0,s.level))}),r=i+a}return{cues:n,duration:r}}function JC(e,t){const n=e.cues;if(n.length===0||t<0)return null;let r=0,s=n.length-1;for(;r<s;){const a=r+s+1>>1;n[a].t<=t?r=a:s=a-1}const i=n[r];return t<=i.t+i.dur+1e-9?i:null}function Xp(){const[e,t]=w.useState(null),[n,r]=w.useState(null),[s,i]=w.useState(null),[a,o]=w.useState([]),u=w.useRef([]),[l,c]=w.useState(null),[f,h]=w.useState(!1),d=w.useRef(null),m=w.useRef(new Map),p=w.useRef(new Map),g=w.useRef(0),y=w.useRef(!1),v=w.useRef([]),T=w.useRef(0),C=w.useRef(0),E=w.useRef(!1),k=w.useRef(null),_=w.useRef(0),A=w.useRef(null),I=w.useRef(null),S=w.useRef(null);S.current||(S.current=()=>{const B=I.current,q=typeof window<"u"?window.speechSynthesis:void 0;if(!B||B.stopped||!q)return;if(B.i>=B.sentences.length){I.current=null,k.current=null,t(null),r(null),i(null);return}const R=B.i,$=jC(B.sentences[R]),K=new SpeechSynthesisUtterance($);B.voice&&(K.voice=B.voice,K.lang=B.voice.lang),K.rate=B.rate,K.onstart=()=>{!I.current||I.current.stopped||i({index:R,total:B.sentences.length,text:$})};const D=()=>{var Z;!I.current||I.current.stopped||(I.current.i+=1,(Z=S.current)==null||Z.call(S))};K.onend=D,K.onerror=D,q.speak(K)});const M=w.useCallback((B,q)=>{var D;if(typeof window>"u"||!("speechSynthesis"in window)){c("engine-unavailable");return}const R=RC(q);if(R.length===0){c("empty-text");return}u.current=R.slice(),o(R.slice()),_.current=R.length,r({index:0,total:R.length,text:R[0]??""});const $=A.current,K=pd(window.speechSynthesis.getVoices(),($==null?void 0:$.systemVoice)??null);I.current={messageId:B,sentences:R,i:0,stopped:!1,voice:K,rate:bd($==null?void 0:$.speed)},window.speechSynthesis.cancel(),(D=S.current)==null||D.call(S)},[]),N=()=>{if(!d.current){const B=window.AudioContext??window.webkitAudioContext;d.current=new B}return d.current.resume(),d.current},j=w.useCallback(()=>{E.current&&C.current>=T.current&&!y.current&&(k.current=null,t(null),r(null),i(null))},[]),P=w.useCallback(()=>{const B=d.current;if(!B||y.current)return;const q=m.current.get(g.current);if(!q){j();return}const R=g.current;m.current.delete(R),y.current=!0,i({index:R,total:_.current,text:u.current[R]??""}),g.current+=1;const $=B.createBufferSource();$.buffer=q,UC(B,$),Wa({ctx:B,timeline:p.current.get(R)??null,startedAtCtxTime:B.currentTime,analyser:Gp(B)}),$.onended=()=>{C.current+=1,y.current=!1,Wa(null),P()},v.current.push($),$.start()},[j]),L=w.useCallback(()=>{for(const B of v.current)try{B.onended=null,B.stop()}catch{}v.current=[],m.current.clear(),p.current.clear(),Wa(null),y.current=!1,T.current=0,C.current=0,E.current=!1,k.current=null,g.current=0,_.current=0,u.current=[],o([]),t(null),r(null),i(null),I.current&&(I.current.stopped=!0,I.current=null),typeof window<"u"&&"speechSynthesis"in window&&window.speechSynthesis.cancel()},[]),F=w.useCallback(()=>{L(),window.api.ttsStop().catch(()=>{})},[L]),V=w.useCallback((B,q)=>{var R;if(k.current===B){F();return}if(L(),window.dispatchEvent(new CustomEvent("lookatstudy-speech-start",{detail:B})),c(null),k.current=B,T.current=0,C.current=0,E.current=!1,g.current=0,_.current=0,t(B),r({index:0,total:0,text:""}),((R=A.current)==null?void 0:R.engine)==="system"){M(B,q);return}N(),window.api.ttsSpeak(q,B).then($=>{if($.ok){$.firstUse&&h(!0);return}L(),$.reason!=="empty-text"&&c($.reason)}).catch(()=>L())},[M,F,L]);return w.useEffect(()=>{const B=window.api.on("speech:ttsAudio",$=>{if($.messageId!==k.current)return;const K=N();T.current+=1,_.current=$.sentenceTotal,r({index:$.sentenceIndex,total:$.sentenceTotal,text:$.sentence??""}),$.sentence!=null&&(u.current[$.sentenceIndex]=$.sentence,o(u.current.slice())),K.decodeAudioData($.wavBytes).then(D=>{var Z;if($.messageId===k.current){m.current.set($.sentenceIndex,D);try{const oe=(Z=$.visemeCues)!=null&&Z.length?ZC($.visemeCues):QC(e3(D),D.sampleRate);oe&&p.current.set($.sentenceIndex,oe)}catch{}P()}},()=>{$.messageId===k.current&&(T.current-=1,P())})}),q=window.api.on("speech:ttsDone",$=>{$.messageId===k.current&&(E.current=!0,j())}),R=window.api.on("speech:ttsError",()=>L());return()=>{B(),q(),R()}},[j,P,L]),w.useEffect(()=>L,[L]),w.useEffect(()=>{const B=q=>{const R=q.detail;k.current&&R!==k.current&&L()};return window.addEventListener("lookatstudy-speech-start",B),()=>window.removeEventListener("lookatstudy-speech-start",B)},[L]),w.useEffect(()=>{let B=!0;const q=()=>{Promise.all([window.api.getSetting("tts_engine"),window.api.getSetting("tts_system_voice"),window.api.getSetting("tts_speed")]).then(([R,$,K])=>{B&&(A.current={engine:(R??"").trim(),systemVoice:$??null,speed:bd(K)})}).catch(()=>{})};return q(),window.addEventListener(hd,q),()=>{B=!1,window.removeEventListener(hd,q)}},[]),w.useEffect(()=>{if(typeof window>"u"||!("speechSynthesis"in window))return;const B=()=>{var R;const q=I.current;!q||q.voice||(q.voice=pd(window.speechSynthesis.getVoices(),((R=A.current)==null?void 0:R.systemVoice)??null))};return window.speechSynthesis.addEventListener("voiceschanged",B),()=>window.speechSynthesis.removeEventListener("voiceschanged",B)},[]),w.useEffect(()=>{Zg(e!==null)},[e]),{speakingMessageId:e,speakingSentence:n,playingSentence:s,streamTexts:a,failReason:l,clearFailReason:()=>c(null),onlineNotice:f,clearOnlineNotice:()=>h(!1),speak:V,stop:F}}function e3(e){if(e.numberOfChannels===1)return e.getChannelData(0);const t=e.getChannelData(0),n=e.getChannelData(1),r=new Float32Array(t.length);for(let s=0;s<t.length;s++)r[s]=(t[s]+n[s])/2;return r}function bd(e){const t=typeof e=="number"?e:Number.parseFloat(e??"");return Number.isFinite(t)?Math.min(2,Math.max(.5,t)):1}const Qp=w.createContext(null);let t3=0;const n3={default:4e3,success:4e3,info:4e3,warning:5e3,error:6e3},r3={default:null,success:x.jsx(Tu,{className:"w-4 h-4 text-brand shrink-0"}),error:x.jsx(O1,{className:"w-4 h-4 text-warning shrink-0"}),warning:x.jsx(ku,{className:"w-4 h-4 text-review shrink-0"}),info:x.jsx(G1,{className:"w-4 h-4 text-accent shrink-0"})};function i3({children:e}){const[t,n]=w.useState([]),r=w.useCallback(a=>{n(o=>o.filter(u=>u.id!==a))},[]),s=w.useCallback(a=>{n(o=>o.map(u=>u.id===a?{...u,exiting:!0}:u))},[]),i=w.useCallback((a,o)=>{const u=++t3,l=(o==null?void 0:o.severity)??"default",c=(o==null?void 0:o.duration)??n3[l],f={id:u,message:a,action:o==null?void 0:o.action,duration:c,severity:l,exiting:!1};n(h=>[...h,f]),window.setTimeout(()=>s(u),c)},[s]);return x.jsxs(Qp.Provider,{value:{show:i},children:[e,x.jsx("div",{className:"fixed top-14 left-1/2 -translate-x-1/2 z-[100] flex flex-col items-center gap-2 pointer-events-none",role:"region","aria-live":"polite","aria-label":"Notifications",children:t.map(a=>x.jsx(s3,{item:a,onAction:()=>{a.action.onClick(),s(a.id)},onDismiss:()=>s(a.id),onExitDone:()=>r(a.id)},a.id))})]})}function s3({item:e,onAction:t,onDismiss:n,onExitDone:r}){const s=Ge(),i=r3[e.severity];return x.jsxs("div",{className:`pointer-events-auto flex items-center gap-2.5 pl-4 pr-2 py-2 rounded-full bg-surface-0 text-ink-strong text-body shadow-elevated max-w-md ${e.exiting?"toast-exit":"toast-enter"}`,"data-testid":`toast-${e.id}`,"data-severity":e.severity,onAnimationEnd:e.exiting?r:void 0,children:[i,x.jsx("span",{className:"flex-1",children:e.message}),e.action&&x.jsx("button",{onClick:t,className:"text-brand font-bold text-body hover:underline shrink-0 px-1.5 py-1 rounded transition-colors hover:bg-brand/10","data-testid":`toast-action-${e.id}`,children:e.action.label}),x.jsx("button",{onClick:n,className:"text-ink-muted hover:text-ink-strong shrink-0 w-6 h-6 flex items-center justify-center rounded transition-colors hover:bg-surface-3","aria-label":s("action.close"),children:x.jsx(yr,{className:"w-3.5 h-3.5"})})]})}function Gu(){const e=w.useContext(Qp);return e||{show:()=>{}}}const Zp={typescript:()=>Se(()=>import("./typescript-BPQ3VLAy.js"),[],import.meta.url),tsx:()=>Se(()=>import("./tsx-COt5Ahok.js"),[],import.meta.url),javascript:()=>Se(()=>import("./javascript-wDzz0qaB.js"),[],import.meta.url),jsx:()=>Se(()=>import("./jsx-g9-lgVsj.js"),[],import.meta.url),python:()=>Se(()=>import("./python-B6aJPvgy.js"),[],import.meta.url),go:()=>Se(()=>import("./go-C27-OAKa.js"),[],import.meta.url),rust:()=>Se(()=>import("./rust-B1yitclQ.js"),[],import.meta.url),java:()=>Se(()=>import("./java-CylS5w8V.js"),[],import.meta.url),c:()=>Se(()=>import("./c-BIGW1oBm.js"),[],import.meta.url),cpp:()=>Se(()=>import("./cpp-DddhVWhK.js"),__vite__mapDeps([5,6]),import.meta.url),csharp:()=>Se(()=>import("./csharp-DSvCPggb.js"),[],import.meta.url),ruby:()=>Se(()=>import("./ruby-B6QtyW_S.js"),__vite__mapDeps([7,8,9,10,11,12,13,14,15,16,17,5,6,18,19,20]),import.meta.url),php:()=>Se(()=>import("./php-Csjmro_R.js"),__vite__mapDeps([21,8,9,10,11,12,13,22]),import.meta.url),swift:()=>Se(()=>import("./swift-C2oV4EkX.js"),[],import.meta.url),kotlin:()=>Se(()=>import("./kotlin-BdnUsdx6.js"),[],import.meta.url),lua:()=>Se(()=>import("./lua-BaeVxFsk.js"),__vite__mapDeps([19,6]),import.meta.url),r:()=>Se(()=>import("./r-Cf5RLm7j.js"),[],import.meta.url),shellscript:()=>Se(()=>import("./shellscript-Yzrsuije.js"),[],import.meta.url),sql:()=>Se(()=>import("./sql-CRqJ_cUM.js"),[],import.meta.url),html:()=>Se(()=>import("./html-pp8916En.js"),__vite__mapDeps([8,9,10]),import.meta.url),css:()=>Se(()=>import("./css-CLj8gQPS.js"),[],import.meta.url),scss:()=>Se(()=>import("./scss-D5BDwBP9.js"),__vite__mapDeps([23,10]),import.meta.url),xml:()=>Se(()=>import("./xml-sdJ4AIDG.js"),__vite__mapDeps([11,12]),import.meta.url),json:()=>Se(()=>import("./json-Cp-IABpG.js"),[],import.meta.url),yaml:()=>Se(()=>import("./yaml-Buea-lGh.js"),[],import.meta.url),toml:()=>Se(()=>import("./toml-vGWfd6FD.js"),[],import.meta.url),ini:()=>Se(()=>import("./ini-BEwlwnbL.js"),[],import.meta.url),markdown:()=>Se(()=>import("./markdown-Cvjx9yec.js"),[],import.meta.url),dockerfile:()=>Se(()=>import("./dockerfile-BcOcwvcX.js"),[],import.meta.url),makefile:()=>Se(()=>import("./makefile-CHLpvVh8.js"),[],import.meta.url),diff:()=>Se(()=>import("./diff-D97Zzqfu.js"),[],import.meta.url),graphql:()=>Se(()=>import("./graphql-ChdNCCLP.js"),__vite__mapDeps([14,9,15,16,17]),import.meta.url),latex:()=>Se(()=>import("./latex-B2nUCzCX.js"),__vite__mapDeps([24,25]),import.meta.url),vue:()=>Se(()=>import("./vue-CHlpWS_5.js"),__vite__mapDeps([26,10,9,15,22,8]),import.meta.url)},yd={js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",py:"python",python3:"python",rb:"ruby",golang:"go",rs:"rust",cs:"csharp",kt:"kotlin",sh:"shellscript",bash:"shellscript",zsh:"shellscript",shell:"shellscript",console:"shellscript",yml:"yaml",md:"markdown",gfm:"markdown",docker:"dockerfile",tex:"latex",plaintext:"",txt:"",text:""};function a3(e){const t=e.trim().toLowerCase();return t?t in yd?yd[t]||null:t in Zp?t:null:null}let Wr=null;const Ed=new Set;function Ku(){return Wr||(Wr=(async()=>{const[e,t,n,r]=await Promise.all([Se(()=>import("./core-D-c45hIK.js"),__vite__mapDeps([27,1,2]),import.meta.url),Se(()=>import("./engine-javascript-DBd1bXLz.js"),[],import.meta.url),Se(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url),Se(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url)]);return e.createHighlighterCore({themes:[n.default,r.default],langs:[],engine:t.createJavaScriptRegexEngine({forgiving:!0})})})(),Wr.catch(()=>{Wr=null})),Wr}async function Jp(e){const t=a3(e);if(!t)return null;if(Ed.has(t))return t;const n=Zp[t];if(!n)return null;const r=await Ku(),s=await n();return await r.loadLanguage(s),Ed.add(t),t}async function o3(e,t){try{const n=await Jp(t);return n?(await Ku()).codeToHtml(e,{lang:n,themes:{light:"github-light",dark:"github-dark"},defaultColor:"dark"}):null}catch{return null}}const u3=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");async function t4(e,t){try{const n=await Jp(t);return n?(await Ku()).codeToTokens(e,{lang:n,theme:"github-dark"}).tokens.map(i=>i.map(a=>`<span style="color:${a.color}">${u3(a.content)}</span>`).join("")):null}catch{return null}}function l3(e){const t=Array.isArray(e)?e[0]:e,n=(t==null?void 0:t.props)??{},r=/language-(\w+)/.exec(n.className??""),s=n.children,i=typeof s=="string"?s:Array.isArray(s)?s.join(""):"";return{lang:(r==null?void 0:r[1])??"",text:i}}function e0({children:e,...t}){const n=Ge(),[r,s]=w.useState(!1),[i,a]=w.useState(null),{lang:o,text:u}=l3(e);w.useEffect(()=>{let c=!0;if(u)return o3(u.replace(/\n$/,""),o).then(f=>{c&&f&&a(f)}),()=>{c=!1}},[u]);const l=()=>{var c;(c=navigator.clipboard)==null||c.writeText(u).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})};return x.jsxs("div",{className:"relative group my-3","data-testid":"md-codeblock",children:[x.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 bg-surface-1 border border-b-0 border-[var(--border-faint)] rounded-t-md",children:[x.jsx("span",{className:"text-caption font-mono text-ink-faint uppercase tracking-wider",children:o||"code"}),x.jsx("button",{onClick:l,"aria-label":n("chat.copy"),className:"text-caption text-ink-muted hover:text-brand transition-colors opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 inline-flex items-center gap-1","data-testid":"md-copy",children:r?x.jsxs(x.Fragment,{children:[x.jsx(Tn,{className:"w-3 h-3 inline"}),n("chat.copied")]}):x.jsxs(x.Fragment,{children:[x.jsx(j1,{className:"w-3 h-3 inline"}),n("chat.copy")]})})]}),i?x.jsx("div",{className:"md-shiki","data-testid":"md-shiki",dangerouslySetInnerHTML:{__html:i}}):x.jsx("pre",{...t,className:"!mt-0 !rounded-t-none !border-t-0",children:e})]})}const t0=w.lazy(()=>Se(()=>import("./index-FXb7NZ5E.js"),__vite__mapDeps([28,1,2,29,30,31]),import.meta.url).then(e=>({default:e.ArtifactRenderer}))),c3=w.lazy(()=>Se(()=>import("./CanvasStage-DNMSEgol.js").then(e=>e.a),__vite__mapDeps([29,1,2]),import.meta.url).then(e=>({default:e.CanvasStage}))),d3=w.lazy(()=>Se(()=>import("./ReviewPanel-DPKPl7CY.js"),__vite__mapDeps([32,1,2]),import.meta.url).then(e=>({default:e.SelfRatingCard}))),f3={concept_map:mh,quiz:lh,compare_table:hx,diagram:V1,code_walkthrough:B1},h3=new Set(["concept_map","quiz","compare_table","diagram","code_walkthrough"]);function m3(e,t){return h3.has(t)?e(`artifact.type.${t}`):e("artifact.type.unknown")}function p3({selectedNode:e,items:t,loading:n,forceTab:r,canvasArtifact:s,isReviewing:i,onReviewDone:a,onUserTabChange:o,onRemove:u,onTogglePin:l,onRecordQuizResult:c,onSaveContentNote:f,onUpdateNoteComment:h,onJumpToSource:d,onQuoteToChat:m,locale:p}){var _;const g=Ge(),[y,v]=w.useState("content"),T=r??y,C=A=>{v(A),o==null||o()},E=e?t.filter(A=>A.nodeId===e.id):[],k=w.useRef(null);return w.useEffect(()=>{var A;(A=k.current)==null||A.scrollTo({top:0})},[e==null?void 0:e.id]),x.jsxs("div",{className:"relative h-full flex flex-col bg-surface-2","data-testid":"notebook-panel",children:[x.jsx("div",{className:"px-3 pt-3 pb-1 shrink-0","data-testid":"notebook-tabs",children:x.jsxs("div",{className:"flex p-1 rounded-lg gap-1 bg-ink/[0.08]",role:"tablist","aria-label":"Notebook",children:[x.jsx(Xa,{label:g("notebook.tab.explain"),icon:vn,active:T==="content",onClick:()=>C("content"),testid:"tab-content"}),x.jsx(Xa,{label:g("notebook.tab.notes"),icon:J1,active:T==="notes",onClick:()=>C("notes"),testid:"tab-notes",badge:E.length>0?String(E.length):void 0}),x.jsx(Xa,{label:g("notebook.tab.board"),icon:pa,active:T==="board",onClick:()=>C("board"),testid:"tab-board"})]})}),x.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 animate-tab-slide",ref:k,role:"tabpanel",children:T==="board"?x.jsx("div",{className:"h-full flex flex-col","data-testid":"board-tab-content",children:s?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"px-4 pt-3 pb-2 shrink-0 flex items-center gap-2 min-w-0",children:[x.jsx(pa,{className:"w-4 h-4 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-label font-bold text-ink truncate",children:((_=s.output)==null?void 0:_.title)??s.toolName})]}),x.jsx("div",{className:"flex-1 min-h-0 px-2 pb-2",children:x.jsx("div",{className:"h-full rounded-xl overflow-hidden bg-surface-0/60 border border-[var(--border-faint)]",children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(c3,{testid:"board-canvas-stage",children:x.jsx(t0,{data:s.output,variant:"canvas"})})})})})]}):x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6",children:[x.jsx(pa,{className:"w-10 h-10 mb-3 text-ink-muted opacity-30"}),x.jsx("div",{className:"text-body text-ink-muted max-w-sm leading-relaxed",children:g("notebook.board.empty")})]})}):x.jsx(x.Fragment,{children:x.jsx("div",{className:"mx-auto w-full max-w-[960px] min-h-full flex flex-col",children:T==="content"?x.jsx(g3,{selectedNode:e,contentNotes:E.filter(A=>A.artifactType==="user_note"&&A.sourceAnchor),onQuoteToChat:m,onSaveContentNote:f,locale:p,isReviewing:i,onReviewDone:a}):x.jsx(x3,{items:E,loading:n,selectedNode:e,onRemove:u,onTogglePin:l,onRecordQuizResult:c,onUpdateNoteComment:h,onJumpToSource:d})})})},T)]})}function g3({selectedNode:e,contentNotes:t,onQuoteToChat:n,onSaveContentNote:r,locale:s,isReviewing:i,onReviewDone:a}){const o=Ge(),u=Gu(),l=Xp();w.useEffect(()=>{if(l.failReason){const L=l.failReason==="engine-unavailable"?"chat.speech.engine_unavailable":l.failReason==="azure-key-missing"?"chat.speech.azure_key_missing":l.failReason==="azure-region-missing"?"chat.speech.azure_region_missing":l.failReason==="edge-failed"?"chat.speech.edge_failed":"chat.speech.model_missing";u.show(o(L),{severity:"warning"}),l.clearFailReason()}else l.onlineNotice&&(u.show(o("chat.speech.edge_disclosed"),{severity:"info"}),l.clearOnlineNotice())},[l.failReason,l.onlineNotice,u,o,l]);const c=w.useRef(l.stop);c.current=l.stop;const f=e?`content-${e.id}`:null;w.useEffect(()=>()=>{c.current()},[f]);const[h,d]=w.useState(null),m=Ip(h??""),[p,g]=w.useState(!1),[y,v]=w.useState(!1),[T,C]=w.useState([]),[E,k]=w.useState(null),_=w.useRef(null),A=w.useRef(null),I=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches;w.useEffect(()=>{if(!e){d(null),v(!1);return}let L=!1;return g(!0),v(!1),le.getNodeContent(e.id,s??void 0).then(F=>{L||d(F)}).catch(()=>{L||(d(null),v(!0))}).finally(()=>{L||g(!1)}),()=>{L=!0}},[e==null?void 0:e.id,s]),w.useEffect(()=>{if(!e){C([]);return}let L=!1;return le.listAssetsByNode(e.id).then(F=>{L||C(F)}).catch(()=>{L||C([])}),()=>{L=!0}},[e==null?void 0:e.id]),w.useEffect(()=>{if(!h||!_.current)return;const L=[];for(const V of t)try{const B=JSON.parse(V.sourceAnchor);if(B.type==="content"){const q=JSON.parse(V.data).text??"";q&&L.push({noteId:V.id,text:q,surrounding:B.surroundingText})}}catch{}const F=setTimeout(()=>{A.current&&Pp(A.current,L)},80);return()=>clearTimeout(F)},[h,t]),w.useEffect(()=>{const L=F=>{var q;const V=F.detail;if(!V)return;const B=(q=A.current)==null?void 0:q.querySelector(`mark[data-note-id="${V}"]`);B&&zp(B)};return window.addEventListener("lookatstudy-jump-to-note",L),()=>window.removeEventListener("lookatstudy-jump-to-note",L)},[]);const S=l.speakingMessageId===f&&l.playingSentence!=null?l.playingSentence.index:null;w.useEffect(()=>{const L=A.current;if(!L)return;if(S==null){Wn(L);return}const F=qp(l.streamTexts,S);if(!F)return;S===0&&jp(L);const V=setTimeout(()=>{const B=Hp(L,F);B&&Up(B,L.closest(".overflow-y-auto"))},30);return()=>clearTimeout(V)},[S,l.streamTexts,f]),w.useEffect(()=>{S==null&&A.current&&Wn(A.current)},[S]);const M=w.useRef(!1);M.current=S!=null,w.useEffect(()=>()=>{M.current&&Wn(document.body)},[]);const N=w.useCallback(()=>{var X;if(!n&&!r)return;const L=window.getSelection(),F=(L==null?void 0:L.toString().trim())??"";if(F.length<2||F.length>500){k(null);return}const V=L==null?void 0:L.getRangeAt(0);if(!V||!((X=_.current)!=null&&X.contains(V.commonAncestorContainer))){k(null);return}const B=V.getBoundingClientRect(),q=_.current.getBoundingClientRect(),R=A.current;let $=null;if(R&&R.contains(V.commonAncestorContainer)){const ce=yi(R);$=Np(V,ce)}const K=R?yi(R).text:F,D=$?$.start:K.indexOf(F),Z=D>=0?K.slice(Math.max(0,D-30),D+F.length+30):F,oe=V.getClientRects(),z=oe.length?oe[oe.length-1]:B,J=$p({left:B.left-q.left,top:B.top-q.top,right:B.right-q.left,bottom:B.bottom-q.top,width:B.width,height:B.height},q.width,n?I?190:150:I?140:100,{left:z.left-q.left,top:z.top-q.top,right:z.right-q.left,bottom:z.bottom-q.top,width:z.width,height:z.height},I);k({x:J.left,y:J.top,transform:J.transform,text:F,surrounding:Z,offsets:$??void 0})},[n,r,I]);w.useEffect(()=>{const L=I?600:250;let F=null,V=null,B=!1;const q=()=>{var D;return(((D=window.getSelection())==null?void 0:D.toString().trim().length)??0)>=2},R=()=>{q()?(V&&(clearTimeout(V),V=null),k(D=>D&&null),F&&clearTimeout(F),F=setTimeout(()=>{F=null,!B&&q()&&N()},L)):V||(V=setTimeout(()=>k(D=>D&&null),250))},$=D=>{var oe;const Z=D.target;(oe=Z==null?void 0:Z.closest)!=null&&oe.call(Z,"[data-selection-popover]")||(B=!0)},K=()=>{B=!1,F&&(clearTimeout(F),F=null),!V&&q()&&N()};return document.addEventListener("selectionchange",R),window.addEventListener("pointerdown",$,!0),window.addEventListener("pointerup",K,!0),window.addEventListener("pointercancel",K,!0),()=>{document.removeEventListener("selectionchange",R),window.removeEventListener("pointerdown",$,!0),window.removeEventListener("pointerup",K,!0),window.removeEventListener("pointercancel",K,!0),F&&clearTimeout(F),V&&clearTimeout(V)}},[N]);const j=w.useCallback(()=>{var F;if(!E||!n)return;const L=E.text.length>200?E.text.slice(0,200)+"…":E.text;n(o("notebook.quote.template",{text:L})),k(null),(F=window.getSelection())==null||F.removeAllRanges()},[E,n,o]),P=w.useCallback(()=>{var F,V,B;if(!E||!r||!e)return;const L=E.text.length>200?E.text.slice(0,200)+"…":E.text;r(L,{type:"content",surroundingText:E.surrounding,startOffset:(F=E.offsets)==null?void 0:F.start,endOffset:(V=E.offsets)==null?void 0:V.end}),Jg(),setTimeout(()=>{var $;const q=($=A.current)==null?void 0:$.querySelectorAll("mark.lookatstudy-underline"),R=q&&q.length>0?q[q.length-1]:null;R&&wC(R)},200),k(null),(B=window.getSelection())==null||B.removeAllRanges()},[E,r,e]);return e?x.jsxs("div",{className:"p-5 relative","data-testid":"node-content",ref:_,children:[!p&&!y&&h&&x.jsx("div",{className:"sticky top-0 z-20 flex justify-end gap-2 -mt-2 pointer-events-none",children:x.jsx("button",{onClick:()=>l.speak(f??"content",h),"data-tooltip":l.speakingMessageId===f?o("chat.speech.stop"):o("chat.speech.read_aloud_node"),"aria-label":l.speakingMessageId===f?o("chat.speech.stop"):o("chat.speech.read_aloud_node"),"data-testid":l.speakingMessageId===f?"node-content-speak-active":"node-content-speak",className:`pointer-events-auto shrink-0 rounded-full p-2 bg-surface-2 shadow-elevated transition-colors ${l.speakingMessageId===f?"text-brand animate-pulse":"text-ink-muted hover:text-ink-strong"}`,children:l.speakingMessageId===f?x.jsx(vu,{className:"w-4 h-4"}):x.jsx(gh,{className:"w-4 h-4"})})}),x.jsx("div",{className:"text-caption font-bold text-brand uppercase tracking-wider mb-1",children:e.type==="section"?o("notebook.node_type.section"):e.type==="concept"?o("notebook.node_type.concept"):o("notebook.node_type.lesson")}),x.jsx("div",{className:"flex items-start justify-between gap-3 mb-4",children:x.jsx("h2",{className:"text-title font-extrabold text-ink-strong tracking-tight","data-testid":"node-content-title",children:e.title})}),p?x.jsxs("div",{className:"text-body text-ink-muted flex items-center gap-2",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),o("notebook.content.loading")]}):y?x.jsxs("div",{className:"text-body text-warning",children:[o("notebook.content.load_failed"),x.jsx("button",{className:"underline ml-1",onClick:()=>{v(!1),g(!0),le.getNodeContent(e.id,s??void 0).then(d).catch(()=>v(!0)).finally(()=>g(!1))},children:o("notebook.content.retry")})]}):h?x.jsx(pC,{fallback:(L,F)=>x.jsxs("div",{className:"prose prose-sm max-w-[80ch] leading-relaxed [&_pre]:max-w-full [&_pre]:overflow-x-auto",children:[x.jsx("div",{className:"text-body text-warning mb-2",children:o("notebook.content.render_failed")}),x.jsxs("pre",{className:"text-caption text-ink-muted whitespace-pre-wrap break-words bg-surface-1 p-3 rounded",children:[h.slice(0,500),h.length>500?`
450
+ `+o("notebook.content.truncated"):""]}),x.jsx("div",{className:"flex gap-2 mt-2",children:x.jsx("button",{className:"text-caption underline text-accent",onClick:F,children:o("notebook.content.retry_render")})})]}),children:x.jsx("div",{ref:A,className:"prose prose-sm max-w-[80ch] leading-relaxed break-words overflow-x-auto [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_img]:max-w-full [&_video]:max-w-full [&_iframe]:max-w-full select-text",children:x.jsx(gm,{remarkPlugins:m.remarkPlugins,rehypePlugins:m.rehypePlugins,urlTransform:L=>L,components:{pre({children:L,...F}){return x.jsx(e0,{...F,children:L})},a({children:L,...F}){return x.jsx("a",{...F,target:"_blank",rel:"noopener noreferrer",children:L})},img({src:L,alt:F,...V}){return x.jsx(b3,{src:L,alt:F,assets:T,...V})},table({children:L}){return x.jsx("div",{className:"overflow-x-auto my-4",children:x.jsx("table",{children:L})})}},children:Vp(h)})})},`${e.id}-${s??"orig"}`):x.jsx("div",{className:"text-body text-ink-muted",children:o("notebook.content.empty")}),T.length>0&&x.jsxs("div",{className:"mt-6 pt-4 border-t border-[var(--border-faint)]",children:[x.jsxs("div",{className:"text-label font-bold text-ink-muted mb-2 flex items-center gap-1",children:[x.jsx(Y1,{className:"w-3.5 h-3.5"}),x.jsx("span",{children:o("notebook.images.heading",{n:T.length})})]}),x.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:T.map(L=>x.jsx(y3,{asset:L},L.id))})]}),E&&x.jsxs("div",{"data-selection-popover":!0,style:{left:E.x,top:E.y,transform:E.transform},className:"absolute z-20 flex items-center gap-0.5 msg-enter whitespace-nowrap",children:[n&&x.jsxs("button",{onClick:j,"data-testid":"quote-to-chat-btn","aria-label":o("notebook.quote.ask"),className:"px-2 py-1.5 rounded-lg bg-brand text-white text-label font-bold shadow-elevated flex items-center gap-1 hover:bg-brand-light transition-colors",children:[x.jsx(fh,{className:"w-3 h-3"}),o("notebook.quote.ask")]}),x.jsxs("button",{onClick:P,"data-testid":"save-note-btn","aria-label":o("notebook.quote.add_note"),className:"px-2 py-1.5 rounded-lg bg-accent text-white text-label font-bold shadow-elevated flex items-center gap-1 hover:brightness-110 transition",title:o("notebook.quote.save_note.title"),children:[x.jsx(hi,{className:"w-3.5 h-3.5"}),o("notebook.quote.add_note")]})]}),e.sourcePath&&x.jsx("div",{className:"mt-6 pt-3 border-t border-[var(--border-faint)] text-label text-ink-muted",children:o("notebook.source.label",{path:e.sourcePath})}),x.jsxs("div",{className:"mt-4 p-3 rounded-lg bg-accent/5 border border-accent/20 text-body text-ink-muted flex items-start gap-1.5",children:[x.jsx(X1,{className:"w-3.5 h-3.5 shrink-0 mt-0.5 text-accent"}),x.jsx("span",{children:o("notebook.quote.hint")})]}),i&&e&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(d3,{nodeId:e.id,onRated:a})})]}):x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs",children:o("notebook.empty.select_node")})]})}function x3({items:e,loading:t,selectedNode:n,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o}){const u=Ge();if(!n)return x.jsx(Td,{message:u("notebook.empty.notes.title"),icon:"📓"});if(t)return x.jsxs("div",{className:"flex-1 flex items-center justify-center gap-2 text-body text-ink-muted",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),u("notebook.empty.notes.title")]});const l=e.filter(p=>["concept_map","compare_table","diagram","code_walkthrough"].includes(p.artifactType)),c=e.filter(p=>p.artifactType==="user_note"),f=e.filter(p=>p.artifactType==="quiz"),h=e.length,d=f.filter(p=>p.lastResult==="correct").length,m=f.filter(p=>p.lastResult==="wrong").length;return h===0?x.jsx(Td,{message:u("notebook.empty.no_notes_message"),icon:"🧩"}):x.jsxs("div",{className:"p-4 space-y-3","data-testid":"notes-list",children:[x.jsx(Ya,{title:u("notebook.zone.understand"),icon:x.jsx(mh,{className:"w-4 h-4"}),subtitle:u("notebook.zone.understand.subtitle"),count:l.length,testid:"zone-understand",defaultOpen:!1,children:l.length===0?x.jsx(Ga,{hint:u("notebook.zone.understand.empty_hint")}):l.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))}),x.jsx(Ya,{title:u("notebook.zone.note"),icon:x.jsx(hi,{className:"w-4 h-4"}),subtitle:u("notebook.zone.note.subtitle"),count:c.length,testid:"zone-note",defaultOpen:!1,children:c.length===0?x.jsx(Ga,{hint:u("notebook.zone.note.empty_hint")}):c.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))}),x.jsx(Ya,{title:u("notebook.zone.practice"),icon:x.jsx(lh,{className:"w-4 h-4"}),subtitle:f.length>0?u("notebook.zone.practice.subtitle_stats",{total:f.length,correct:d,wrong:m}):u("notebook.zone.practice.subtitle_empty"),count:f.length,testid:"zone-practice",defaultOpen:!1,children:f.length===0?x.jsx(Ga,{hint:u("notebook.zone.practice.empty_hint")}):f.map(p=>x.jsx(Ka,{item:p,onRemove:r,onTogglePin:s,onRecordQuizResult:i,onUpdateNoteComment:a,onJumpToSource:o},p.id))})]})}function Ya({title:e,icon:t,subtitle:n,count:r,testid:s,defaultOpen:i=!0,children:a}){const[o,u]=w.useState(i),l=w.useRef(!0),c=w.useRef(r);return w.useEffect(()=>{if(l.current){l.current=!1,c.current=r;return}r>c.current&&u(!0),c.current=r},[r]),x.jsxs("section",{className:"rounded-xl bg-surface-1 overflow-hidden","data-testid":s,children:[x.jsxs("button",{onClick:()=>u(f=>!f),"aria-expanded":o,className:"w-full flex items-center gap-2 px-3 py-2.5 bg-surface-1/50 hover:bg-surface-3/60 transition-colors text-left","data-testid":`${s}-toggle`,children:[x.jsx(Eu,{className:`w-4 h-4 text-ink-muted transition-transform duration-200 ease-out-back ${o?"":"-rotate-90"}`}),x.jsx("span",{className:"text-body text-ink-strong flex items-center",children:t}),x.jsx("span",{className:"text-body font-bold text-ink",children:e}),x.jsx("span",{className:"text-caption font-bold px-1.5 py-0.5 rounded-full bg-brand/15 text-brand",children:r}),x.jsx("span",{className:"text-label text-ink-muted ml-auto truncate",children:n})]}),x.jsx("div",{className:"grid transition-all duration-200 ease-out-expo",style:{gridTemplateRows:o?"1fr":"0fr"},children:x.jsx("div",{className:"overflow-hidden",children:x.jsx("div",{className:"p-3 space-y-3",children:a})})})]})}function Ga({hint:e}){return x.jsx("div",{className:"text-center py-3 text-body text-ink-muted",children:e})}function Ka({item:e,onRemove:t,onTogglePin:n,onRecordQuizResult:r,onUpdateNoteComment:s,onJumpToSource:i}){const a=Ge(),[o,u]=w.useState(!1),[l,c]=w.useState(e.notes??""),f=w.useCallback((T,C,E)=>{e.nodeId&&le.recordQuizAnswer(e.nodeId,E).catch(()=>{}),r(e.id,E)},[e.nodeId,e.id,r]),h=e.artifactType==="user_note";let d="",m=null;if(h){try{d=JSON.parse(e.data).text??""}catch{d=e.title??""}try{e.sourceAnchor&&(m=JSON.parse(e.sourceAnchor))}catch{m=null}}let p=null;if(!h)try{p=JSON.parse(e.data)}catch{p=null}const g=new Date(e.createdAt),y=`${g.getMonth()+1}/${g.getDate()} ${g.getHours().toString().padStart(2,"0")}:${g.getMinutes().toString().padStart(2,"0")}`;if(h){const T=e.notes&&e.notes.trim().length>0?e.notes:null,C=()=>{c(T??""),u(!0)},E=()=>{c(T??""),u(!1)},k=()=>{s==null||s(e.id,l),u(!1)};return x.jsx("div",{className:`bg-surface-2 rounded-lg p-3 relative ${e.pinned?"ring-1 ring-brand/40 bg-brand/5":""}`,"data-testid":`canvas-item-${e.id.slice(0,8)}`,children:x.jsxs("div",{className:"flex items-start gap-2",children:[x.jsx(sx,{className:"w-4 h-4 text-accent shrink-0 mt-0.5"}),x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-body text-ink leading-relaxed whitespace-pre-wrap",children:d}),s&&o?x.jsxs("div",{className:"mt-2 space-y-1.5","data-testid":`note-comment-edit-${e.id.slice(0,8)}`,children:[x.jsx("textarea",{value:l,onChange:_=>c(_.target.value),rows:2,placeholder:a(T?"notebook.note.comment.ph_edit":"notebook.note.comment.ph_new"),className:"w-full text-label leading-relaxed p-2 rounded-md border border-[var(--border-faint)] bg-surface-0 text-ink resize-none focus:outline-none focus:border-brand","data-testid":`note-comment-textarea-${e.id.slice(0,8)}`}),x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsxs("button",{onClick:k,className:"inline-flex items-center gap-1 text-caption font-bold text-white bg-brand hover:bg-brand/90 px-2 py-0.5 rounded","data-testid":`note-comment-save-${e.id.slice(0,8)}`,children:[x.jsx(Tn,{className:"w-3 h-3"})," ",a("notebook.action.save")]}),x.jsxs("button",{onClick:E,className:"inline-flex items-center gap-1 text-caption text-ink-muted hover:text-ink","data-testid":`note-comment-cancel-${e.id.slice(0,8)}`,children:[x.jsx(yr,{className:"w-3 h-3"})," ",a("notebook.action.cancel")]})]})]}):T?x.jsxs("div",{className:"mt-2 px-2.5 py-1.5 rounded-lg bg-ink/5",children:[x.jsx("div",{className:"text-label text-ink-muted italic leading-relaxed whitespace-pre-wrap",children:T}),s&&x.jsxs("button",{onClick:C,className:"mt-1 inline-flex items-center gap-0.5 text-caption text-ink-muted hover:text-accent","data-testid":`note-comment-edit-btn-${e.id.slice(0,8)}`,title:a("notebook.note.edit_comment"),children:[x.jsx(hi,{className:"w-2.5 h-2.5"})," ",a("notebook.note.edit_comment")]})]}):s?x.jsxs("button",{onClick:C,className:"mt-2 inline-flex items-center gap-0.5 text-caption text-ink-muted hover:text-accent","data-testid":`note-comment-add-${e.id.slice(0,8)}`,title:a("notebook.note.add_comment"),children:[x.jsx(hi,{className:"w-2.5 h-2.5"})," ",a("notebook.note.add_comment")]}):null,m&&i&&x.jsx("button",{onClick:()=>i(m,d,e.id),className:"mt-2 inline-flex items-center gap-1 text-caption text-accent hover:underline font-bold","data-testid":`note-source-${e.id.slice(0,8)}`,children:m.type==="content"?x.jsxs(x.Fragment,{children:[x.jsx(vn,{className:"w-3 h-3"}),a("notebook.source.jump_content")]}):x.jsxs(x.Fragment,{children:[x.jsx(fh,{className:"w-3 h-3"}),a("notebook.source.jump_chat")]})}),x.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[x.jsx("span",{className:"text-caption text-ink-muted",children:y}),x.jsx("button",{onClick:()=>t(e.id),className:"text-caption text-ink-muted hover:text-warning","data-testid":`canvas-delete-${e.id.slice(0,8)}`,title:a("notebook.note.delete"),children:x.jsx(Eo,{className:"w-3 h-3"})})]})]})]})})}const v=f3[e.artifactType]??ix;return x.jsxs("div",{className:`bg-surface-2 rounded-lg p-3 relative ${e.pinned?"ring-1 ring-brand/40 bg-brand/5":""}`,"data-testid":`canvas-item-${e.id.slice(0,8)}`,children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[x.jsx("span",{className:"text-body inline-flex items-center text-ink-strong",children:x.jsx(v,{className:"w-4 h-4"})}),x.jsx("span",{className:"text-label font-bold text-ink-muted flex-1 truncate",children:e.title??m3(a,e.artifactType)}),e.artifactType==="quiz"&&e.lastResult&&x.jsx("span",{className:`text-caption font-bold px-1.5 py-0.5 rounded-full ${e.lastResult==="correct"?"bg-brand/15 text-brand":"bg-warning/15 text-warning"}`,"data-testid":`quiz-result-${e.id.slice(0,8)}`,children:e.lastResult==="correct"?a("notebook.quiz.last_correct"):a("notebook.quiz.last_wrong")}),e.pinned?x.jsxs("span",{className:"text-caption text-brand font-bold flex items-center gap-0.5",children:[x.jsx(Hl,{className:"w-2.5 h-2.5"}),a("notebook.note.pinned")]}):null,x.jsx("button",{onClick:()=>n(e.id),className:"text-caption text-ink-muted hover:text-brand","data-testid":`canvas-pin-${e.id.slice(0,8)}`,title:e.pinned?a("notebook.note.unpin"):a("notebook.note.pin"),children:x.jsx(Hl,{className:"w-3 h-3"})}),x.jsx("button",{onClick:()=>t(e.id),className:"text-caption text-ink-muted hover:text-warning","data-testid":`canvas-delete-${e.id.slice(0,8)}`,title:a("notebook.note.delete"),children:x.jsx(Eo,{className:"w-3 h-3"})})]}),x.jsx("div",{className:"text-label",children:p?x.jsx(w.Suspense,{fallback:null,children:x.jsx(t0,{data:p,onQuizAnswered:f})}):x.jsx("div",{className:"text-ink-muted",children:a("notebook.artifact.broken")})}),x.jsx("div",{className:"text-caption text-ink-muted mt-2",children:y})]})}function Td({message:e,icon:t}){return x.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center text-center px-6","data-testid":"empty-notebook",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:t}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs leading-relaxed",children:e})]})}function Xa({label:e,icon:t,active:n,onClick:r,testid:s,badge:i}){return x.jsxs("button",{onClick:r,"data-testid":s,role:"tab","aria-selected":n,className:`flex-1 flex items-center justify-center gap-1 py-1.5 rounded-md text-label font-bold transition-colors ${n?"bg-brand/20 text-brand":"text-ink-muted hover:text-ink-strong"}`,children:[x.jsx(t,{className:"w-3 h-3"}),x.jsx("span",{children:e}),i&&x.jsx("span",{className:`text-caption px-1.5 py-0.5 rounded-full font-bold ${n?"bg-brand/30 text-brand":"bg-ink/10 text-ink-faint"}`,children:i})]})}function b3({src:e,alt:t,assets:n,...r}){const[s,i]=w.useState(null),a=e??"",o=w.useMemo(()=>{if(!a||a.startsWith("http")||a.startsWith("data:"))return null;const l=a.split("/").pop()??a;return n.find(c=>{var f;return(f=c.sourcePath)==null?void 0:f.endsWith(l)})??n.find(c=>c.filename===l)??null},[a,n]);if(w.useEffect(()=>{if(!o){i(null);return}let l=!1;return le.getAssetDataUrl(o.id).then(c=>{l||i(c)}),()=>{l=!0}},[o]),!a)return null;const u=s??a;return x.jsx("img",{src:u,alt:t??"","data-asset-id":o==null?void 0:o.id,className:"rounded-lg max-w-full h-auto my-3",loading:"lazy",...r})}function y3({asset:e}){const t=Ge(),[n,r]=w.useState(null),[s,i]=w.useState(!1);return w.useEffect(()=>{let a=!1;return le.getAssetDataUrl(e.id).then(o=>{a||r(o)}),()=>{a=!0}},[e.id]),x.jsxs(x.Fragment,{children:[x.jsx("button",{onClick:()=>i(!0),className:"block rounded-lg overflow-hidden bg-ink/5 dark:bg-ink/10 hover:ring-2 hover:ring-accent transition-all",title:e.altText??e.filename,children:n?x.jsx("img",{src:n,alt:e.altText??e.filename,"data-asset-id":e.id,className:"w-full h-24 object-cover",loading:"lazy"}):x.jsx("div",{className:"w-full h-24 flex items-center justify-center text-ink-faint text-caption",children:t("notebook.asset.loading")})}),s&&n&&x.jsxs("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center p-8 cursor-pointer",onClick:()=>i(!1),children:[x.jsx("img",{src:n,alt:e.altText??e.filename,"data-asset-id":e.id,className:"max-w-[90vw] max-h-[90vh] object-contain rounded-lg"}),x.jsx("button",{className:"absolute top-4 right-4 text-white/70 hover:text-white","aria-label":t("action.close"),onClick:a=>{a.stopPropagation(),i(!1)},children:x.jsx(yr,{className:"w-6 h-6"})})]})]})}function E3(e){const[t,n]=w.useState([]),[r,s]=w.useState(!0),i=w.useCallback(async()=>{if(!e){n([]),s(!1);return}try{const m=await le.canvasList(e);n(m)}catch{n([])}finally{s(!1)}},[e]);w.useEffect(()=>{i()},[i]);const a=w.useCallback(async m=>{if(!e)return null;try{const p=await le.canvasSave({...m,courseId:e});return n(g=>g.some(y=>y.id===p.id)?g:[p,...g]),p}catch{return null}},[e]),o=w.useCallback(async m=>{if(!e)return null;try{const p=await le.canvasSaveUserNote({...m,courseId:e});return n(g=>[p,...g]),p}catch{return null}},[e]),u=w.useCallback(async(m,p)=>{try{const g=await le.canvasRecordQuizResult(m,p);return g&&n(y=>y.map(v=>v.id===m?g:v)),g}catch{return null}},[]),l=w.useCallback(async(m,p)=>{try{const g=await le.canvasUpdateUserNoteComment(m,p);return g&&n(y=>y.map(v=>v.id===m?g:v)),g}catch{return null}},[]),c=w.useCallback(async m=>{try{await le.canvasDelete(m),n(p=>p.filter(g=>g.id!==m))}catch{}},[]),f=w.useCallback(async m=>{try{const p=await le.canvasTogglePin(m);p&&n(g=>g.map(v=>v.id===m?p:v).sort((v,T)=>T.pinned!==v.pinned?T.pinned-v.pinned:T.createdAt.localeCompare(v.createdAt)))}catch{}},[]),h=w.useCallback(m=>m===null?t:t.filter(p=>p.nodeId===m),[t]),d=w.useCallback((m,p)=>{const g=m===null?t:t.filter(y=>y.nodeId===m);return p==="note"?g.filter(y=>y.artifactType==="user_note"):p==="practice"?g.filter(y=>y.artifactType==="quiz"):g.filter(y=>["concept_map","compare_table","diagram","code_walkthrough"].includes(y.artifactType))},[t]);return{items:t,loading:r,reload:i,save:a,saveUserNote:o,recordQuizResult:u,updateUserNoteComment:l,remove:c,togglePin:f,byNode:h,byZone:d}}const vd={small:16,medium:17,large:18},kd="lookatstudy-font-size",T3="medium";function v3(){const[e,t]=w.useState(()=>{if(typeof localStorage<"u"){const r=localStorage.getItem(kd);if(r&&r in vd)return r}return T3});w.useEffect(()=>{document.documentElement.style.fontSize=`${vd[e]}px`,localStorage.setItem(kd,e)},[e]);const n=w.useCallback(r=>{t(s=>{const i=["small","medium","large"],a=i.indexOf(s),o=r==="up"?Math.min(a+1,i.length-1):Math.max(a-1,0);return i[o]})},[]);return{size:e,bump:n}}const Qa=new Map;function k3({ref_:e,onOpen:t}){const n=Ge(),[r,s]=w.useState(e.previewUrl??(e.file?Qa.get(e.file)??null:null));return w.useEffect(()=>{if(r||!e.file)return;let i=!1;return(async()=>{const a=Qa.get(e.file);if(a){i||s(a);return}const o=await le.getAttachmentDataUrl(e.file);o&&!i&&(Qa.set(e.file,o),s(o))})(),()=>{i=!0}},[e.file,r]),r?x.jsx("button",{type:"button",onClick:()=>t(r),"aria-label":n("chat.attach.preview",{name:e.name}),className:"w-24 h-24 rounded-lg overflow-hidden border border-[var(--border)] hover:border-accent transition-colors shrink-0",children:x.jsx("img",{src:r,alt:e.name,className:"w-full h-full object-cover"})}):x.jsx("div",{className:"w-24 h-24 rounded-lg bg-ink/[0.06] flex items-center justify-center text-caption text-ink-faint",title:e.name,children:e.name.slice(0,8)})}function w3({src:e,name:t,onClose:n}){return w.useEffect(()=>{const r=s=>{s.key==="Escape"&&n()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[n]),x.jsxs("div",{role:"dialog","aria-label":t,className:"fixed inset-0 z-[70] bg-black/80 flex items-center justify-center p-8 cursor-zoom-out animate-[toast-enter_.15s_ease-out]",onClick:n,"data-testid":"attachment-lightbox",children:[x.jsx("img",{src:e,alt:t,className:"max-w-full max-h-full object-contain rounded-lg shadow-elevated"}),x.jsx("button",{type:"button","aria-label":"close",onClick:n,className:"absolute top-4 right-4 w-9 h-9 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition-colors",children:x.jsx(yr,{className:"w-4 h-4"})})]})}function S3({parts:e}){const t=Ge(),[n,r]=w.useState(null),s=e.filter(o=>o.type==="attachment").map(o=>o.attachment);if(s.length===0)return null;const i=s.filter(o=>o.kind==="image"),a=s.filter(o=>o.kind==="text");return x.jsxs("div",{className:"flex flex-col gap-1.5 mb-1","data-testid":"message-attachments",children:[i.length>0&&x.jsx("div",{className:"flex gap-1.5 flex-wrap",children:i.map((o,u)=>x.jsx(k3,{ref_:o,onOpen:l=>r({src:l,name:o.name})},o.file??o.previewUrl??`${o.name}:${u}`))}),a.length>0&&x.jsx("div",{className:"flex gap-1.5 flex-wrap",children:a.map((o,u)=>x.jsxs("span",{"data-tooltip":t("chat.attach.textChip"),className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-ink/[0.06] text-caption text-ink-muted",children:[x.jsx(Us,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"truncate max-w-[12rem]",children:o.name})]},`${o.name}:${u}`))}),n&&x.jsx(w3,{src:n.src,name:n.name,onClose:()=>r(null)})]})}const A3=w.lazy(()=>Se(()=>import("./index-FXb7NZ5E.js"),__vite__mapDeps([28,1,2,29,30,31]),import.meta.url).then(e=>({default:e.ArtifactRenderer})));function C3({messages:e,streaming:t,onApplyProposal:n,onRejectProposal:r,summary:s,onStartLearning:i,agentReady:a=!0,onGotoSettings:o,hasNode:u=!0,selectedNodeId:l,threadId:c,onSaveChatNote:f,chatNotes:h,onPickQuizAction:d,onQuizCompleted:m,cardMode:p=!1}){const g=Ge(),y=Gu(),v=Xp();w.useEffect(()=>{if(v.failReason){const B=v.failReason==="engine-unavailable"?"chat.speech.engine_unavailable":v.failReason==="azure-key-missing"?"chat.speech.azure_key_missing":v.failReason==="azure-region-missing"?"chat.speech.azure_region_missing":v.failReason==="edge-failed"?"chat.speech.edge_failed":v.failReason==="custom-provider-missing"?"chat.speech.custom_provider_missing":"chat.speech.model_missing";y.show(g(B),{severity:"warning"}),v.clearFailReason()}},[v.failReason,y,g,v]),w.useEffect(()=>{v.onlineNotice&&(y.show(g("chat.speech.edge_disclosed"),{severity:"info"}),v.clearOnlineNotice())},[v.onlineNotice,y,g,v]);const T=w.useCallback((B,q,R)=>{l&&le.recordQuizAnswer(l,R,B.kc).catch(()=>{})},[l]),[C,E]=w.useState(null);w.useEffect(()=>{if(!l){E(null);return}let B=!1;const q=()=>le.getProgress(l).then($=>{B||E(($==null?void 0:$.mastery)??null)}).catch(()=>{});q();const R=le.on("state:changed",$=>{$==="mastery"&&q()});return()=>{B=!0,R()}},[l]);const k=w.useRef(null),_=w.useRef(!0),[A,I]=w.useState(!1);w.useEffect(()=>{const B=q=>{const R=q.detail;if(!(R!=null&&R.msgId))return;const $=document.querySelector(`[data-msg-id="${R.msgId}"]`);$&&($.scrollIntoView({behavior:"smooth",block:"center"}),$.classList.add("ring-2","ring-accent","rounded-lg"),setTimeout(()=>$.classList.remove("ring-2","ring-accent","rounded-lg"),2500))};return window.addEventListener("lookatstudy-highlight-message",B),()=>window.removeEventListener("lookatstudy-highlight-message",B)},[]),w.useEffect(()=>{if(t||!k.current||!h||h.length===0)return;const B=setTimeout(()=>{if(!k.current)return;const q=new Map;for(const R of h)try{const $=JSON.parse(R.sourceAnchor);if($.type==="chat"&&$.msgId){const K=JSON.parse(R.data).text??"";if(K){const D=q.get($.msgId)??[];D.push({noteId:R.id,text:K}),q.set($.msgId,D)}}}catch{}for(const[R,$]of q){const K=k.current.querySelector(`[data-msg-id="${R}"]`);K&&Pp(K,$)}},150);return()=>clearTimeout(B)},[e,h,t]),w.useEffect(()=>{const B=q=>{var K;const R=q.detail;if(!R)return;const $=(K=k.current)==null?void 0:K.querySelector(`mark[data-note-id="${R}"]`);$&&zp($)};return window.addEventListener("lookatstudy-jump-to-chat-note",B),()=>window.removeEventListener("lookatstudy-jump-to-chat-note",B)},[]);const[S,M]=w.useState(null),N=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,j=w.useCallback(()=>{if(!f||!c)return;const B=window.getSelection(),q=(B==null?void 0:B.toString().trim())??"";if(q.length<2||q.length>500){M(null);return}const R=B==null?void 0:B.getRangeAt(0);if(!R){M(null);return}const $=k.current;if(!($!=null&&$.contains(R.commonAncestorContainer))){M(null);return}let K=R.commonAncestorContainer,D=null;for(;K&&K!==$;){if(K instanceof HTMLElement&&K.dataset.msgId){D=K;break}K=K.parentNode}if(!D){M(null);return}const Z=D.dataset.msgId,oe=yi(D),z=Np(R,oe),J=R.getBoundingClientRect(),X=$.getBoundingClientRect(),ce=R.getClientRects(),he=ce.length?ce[ce.length-1]:J,re=$p({left:J.left-X.left,top:J.top-X.top,right:J.right-X.left,bottom:J.bottom-X.top,width:J.width,height:J.height},X.width,N?150:110,{left:he.left-X.left,top:he.top-X.top,right:he.right-X.left,bottom:he.bottom-X.top,width:he.width,height:he.height},N);M({x:re.left,y:re.top,transform:re.transform,text:q,msgId:Z,startOffset:z==null?void 0:z.start,endOffset:z==null?void 0:z.end})},[f,c,N]);w.useEffect(()=>{const B=N?600:250;let q=null,R=null,$=!1;const K=()=>{var z;return(((z=window.getSelection())==null?void 0:z.toString().trim().length)??0)>=2},D=()=>{K()?(R&&(clearTimeout(R),R=null),M(z=>z&&null),q&&clearTimeout(q),q=setTimeout(()=>{q=null,!$&&K()&&j()},B)):R||(R=setTimeout(()=>M(z=>z&&null),250))},Z=z=>{var X;const J=z.target;(X=J==null?void 0:J.closest)!=null&&X.call(J,"[data-selection-popover]")||($=!0)},oe=()=>{$=!1,q&&(clearTimeout(q),q=null),!R&&K()&&j()};return document.addEventListener("selectionchange",D),window.addEventListener("pointerdown",Z,!0),window.addEventListener("pointerup",oe,!0),window.addEventListener("pointercancel",oe,!0),()=>{document.removeEventListener("selectionchange",D),window.removeEventListener("pointerdown",Z,!0),window.removeEventListener("pointerup",oe,!0),window.removeEventListener("pointercancel",oe,!0),q&&clearTimeout(q),R&&clearTimeout(R)}},[j]);const P=w.useCallback(()=>{var q;if(!S||!f)return;const B=S.text.length>200?S.text.slice(0,200)+"…":S.text;f(B,S.msgId,S.startOffset,S.endOffset),M(null),(q=window.getSelection())==null||q.removeAllRanges()},[S,f]),L=w.useCallback(()=>{const B=k.current;if(!B)return;const q=B.scrollHeight-B.scrollTop-B.clientHeight<80;_.current=q,I(R=>R===!q?R:!q)},[]);w.useEffect(()=>{if(!_.current)return;const B=k.current;B&&(B.scrollTop=B.scrollHeight)},[e,t]);const F=e.length>0&&e[e.length-1].role==="user";w.useEffect(()=>{if(!F)return;_.current=!0,I(!1);const B=k.current;B&&(B.scrollTop=B.scrollHeight)},[F]);const V=w.useCallback(()=>{const B=k.current;B&&(B.scrollTop=B.scrollHeight,_.current=!0,I(!1))},[]);return x.jsxs("div",{className:"relative flex-1 min-h-0",children:[x.jsxs("div",{ref:k,onScroll:L,className:`h-full overflow-y-auto px-3 py-4 space-y-2 relative ${p?"":"px-5 py-6 space-y-6"}`,"data-testid":"chat-stream",children:[e.length===0&&x.jsx("div",{className:"mt-10 mx-auto max-w-md","data-testid":"chat-empty-state",children:u?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-center mb-4",children:[x.jsx("div",{className:"text-4xl mb-2 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.greeting")}),x.jsx("div",{className:"text-ink-muted text-label",children:g("chat.empty.overview")})]}),s?x.jsxs("div",{className:"surface-card p-4 mb-4",children:[x.jsx("div",{className:"text-caption font-bold text-brand uppercase tracking-wider mb-2",children:g("chat.empty.summary.title")}),x.jsx("div",{className:"text-body text-ink-muted leading-relaxed whitespace-pre-wrap",children:s})]}):x.jsx("div",{className:"surface-card p-4 mb-4 text-center",children:x.jsx("div",{className:"text-body text-ink-muted",children:g("chat.empty.summary.none")})}),a?x.jsx(x.Fragment,{children:i&&x.jsxs("button",{onClick:i,disabled:t,"data-testid":"start-learning-btn",className:"btn-3d-brand w-full py-3 text-body font-bold flex items-center justify-center gap-2 disabled:opacity-40",children:[x.jsx(ax,{className:"w-4 h-4"}),x.jsx("span",{children:g("chat.empty.start")})]})}):x.jsxs("div",{className:"surface-card p-4 mb-2","data-testid":"keyless-card",children:[x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.keyless.title")}),x.jsx("div",{className:"text-label text-ink-muted mb-3",children:g("chat.empty.keyless.desc")}),x.jsxs("button",{onClick:o,className:"btn-3d-brand w-full py-2 text-body font-bold flex items-center justify-center gap-2",children:[x.jsx(Es,{className:"w-4 h-4"}),x.jsx("span",{children:g("chat.empty.keyless.btn")})]})]})]}):x.jsxs("div",{className:"text-center mt-16","data-testid":"no-node-selected",children:[x.jsx("div",{className:"text-5xl mb-3 opacity-25",children:"🗺️"}),x.jsx("div",{className:"text-body font-bold text-ink-muted mb-1",children:g("chat.empty.no_node.title")}),x.jsx("div",{className:"text-body text-ink-muted max-w-xs mx-auto",children:g("chat.empty.no_node.desc")})]})}),e.map(B=>x.jsx("div",{className:p?"":"contents",children:x.jsx("div",{className:p&&B.role==="assistant"?"surface-card p-4 rounded-2xl shadow-card":void 0,children:x.jsx(_3,{msg:B,onApplyProposal:n,onRejectProposal:r,onQuizAnswered:T,quizMastery:C,onPickAction:d,onQuizCompleted:m,speakingMessageId:v.speakingMessageId,speakingSentence:v.speakingSentence,playingSentence:v.playingSentence,streamTexts:v.streamTexts,onSpeak:v.speak})})},B.id)),t&&x.jsxs("div",{className:"flex items-center gap-1.5 text-body text-brand",children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"})]})]}),A&&e.length>0&&x.jsxs("button",{onClick:V,"data-testid":"scroll-to-bottom","aria-label":g("chat.scroll.bottom"),title:g("chat.scroll.bottom"),className:"absolute bottom-4 right-4 w-9 h-9 rounded-full bg-ink-strong text-surface-0 shadow-elevated flex items-center justify-center hover:scale-105 active:scale-95 transition-transform msg-enter",children:[x.jsx(Eu,{className:"w-5 h-5"}),t&&x.jsx("span",{className:"absolute -top-0.5 -right-0.5 w-2.5 h-2.5 bg-brand rounded-full border-2 border-[var(--ink-strong)] animate-pulse"})]}),S&&x.jsxs("button",{onClick:P,"data-testid":"save-chat-note-btn","data-selection-popover":!0,style:{left:S.x,top:S.y,transform:S.transform},className:"absolute z-20 px-3 py-1.5 rounded-lg bg-brand text-white text-body font-bold shadow-elevated flex items-center gap-1 hover:bg-brand-light transition msg-enter whitespace-nowrap",title:g("chat.note.add.title"),children:[x.jsx(hi,{className:"w-3 h-3"})," ",g("chat.note.add")]})]})}function wd(e){const t=[];for(const n of e)if(n.role==="assistant")for(let r=0;r<n.parts.length;r++){const s=n.parts[r];s.type==="tool-call"&&s.state==="output-available"&&s.output&&typeof s.output=="object"&&"artifactType"in s.output&&t.push({id:`${n.id}-${r}`,toolName:s.toolName,output:s.output})}return t}function _3({msg:e,onApplyProposal:t,onRejectProposal:n,onQuizAnswered:r,quizMastery:s,onPickAction:i,onQuizCompleted:a,speakingMessageId:o,speakingSentence:u,playingSentence:l,streamTexts:c,onSpeak:f}){const h=Ge(),d=w.useRef(null),m=e.parts.map(v=>v.type==="text"?v.text:"").join("").trim(),p=o===e.id,g=p&&l!=null?l.index:null;w.useEffect(()=>{const v=d.current;if(!v)return;if(g==null){Wn(v);return}const T=qp(c??[],g);if(!T)return;g===0&&jp(v);const C=setTimeout(()=>{const E=Hp(v,T,{within:'[data-testid="part-text"]'});E&&Up(E,v.closest(".overflow-y-auto"))},30);return()=>clearTimeout(C)},[g,c]),w.useEffect(()=>{g==null&&d.current&&Wn(d.current)},[g]);const y=w.useRef(!1);return y.current=g!=null,w.useEffect(()=>()=>{y.current&&Wn(document.body)},[]),e.role==="user"?x.jsx("div",{className:"msg-enter flex justify-end","data-testid":"msg-user","data-msg-id":e.id,children:x.jsxs("div",{className:"max-w-[85%] bg-ink/[0.04] rounded-2xl rounded-br-md px-4 py-2.5",children:[x.jsx(S3,{parts:e.parts}),x.jsx("div",{className:"font-medium text-ink-strong whitespace-pre-wrap select-text text-body",children:e.displayText??e.parts.map((v,T)=>v.type==="text"?x.jsx("span",{children:v.text},T):null)})]})}):x.jsxs("div",{className:"msg-enter",ref:d,"data-testid":"msg-assistant","data-msg-id":e.id,children:[x.jsx("div",{className:"min-w-0 space-y-2.5",children:e.parts.map((v,T)=>x.jsx(I3,{part:v,msgId:e.id,toolCallIdx:T,onApplyProposal:t,onRejectProposal:n,onQuizAnswered:r,quizMastery:s,onPickAction:i,onQuizCompleted:a},T))}),f&&m&&x.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5",children:[x.jsx("button",{onClick:()=>f(e.id,m),"data-testid":p?"speech-stop-btn":"speech-speak-btn","aria-label":h(p?"chat.speech.stop":"chat.speech.speak"),title:h(p?"chat.speech.stop":"chat.speech.speak"),className:`w-7 h-7 rounded-lg flex items-center justify-center transition ${p?"bg-brand/15 text-brand":"text-ink-muted hover:bg-ink/[0.06] hover:text-ink"}`,children:p?x.jsx(vu,{className:"w-3.5 h-3.5"}):x.jsx(gh,{className:"w-4 h-4"})}),p&&u&&u.total>0&&x.jsx("span",{className:"text-caption text-ink-muted",children:h("chat.speech.progress").replace("{n}",String(u.index+1)).replace("{total}",String(u.total))})]})]})}function I3({part:e,msgId:t,toolCallIdx:n,onApplyProposal:r,onRejectProposal:s,onQuizAnswered:i,quizMastery:a,onPickAction:o,onQuizCompleted:u}){const l=Ip(e.type==="text"?e.text:"");if(e.type==="text")return x.jsx("div",{className:"prose prose-sm max-w-[80ch] leading-relaxed break-words [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_img]:max-w-full [&_video]:max-w-full [&_iframe]:max-w-full select-text","data-testid":"part-text",children:x.jsx(gm,{remarkPlugins:l.remarkPlugins,rehypePlugins:l.rehypePlugins,urlTransform:m=>m,components:L3,children:Vp(e.text)})});if(e.type==="reasoning")return x.jsx(N3,{text:e.text});if(e.type!=="tool-call")return null;const{toolName:c,state:f,output:h,error:d}=e;return x.jsx(R3,{toolName:c,state:f,output:h,error:d,msgId:t,toolCallIdx:n,onApplyProposal:r,onRejectProposal:s,onQuizAnswered:i,quizMastery:a,onPickAction:o,onQuizCompleted:u})}function N3({text:e}){const t=Ge(),[n,r]=w.useState(!1);return x.jsxs("div",{className:"rounded-lg bg-surface-1/60 border border-[var(--border-faint)]","data-testid":"part-reasoning",children:[x.jsxs("button",{onClick:()=>r(s=>!s),className:"w-full flex items-center justify-between px-3 py-1.5 text-label font-bold text-ink-muted hover:text-ink-strong transition-colors",children:[x.jsxs("span",{children:[n?"▾":"▸"," ",t("chat.reasoning.label")]}),x.jsx("span",{className:"text-ink-muted font-normal",children:t("chat.reasoning.chars",{n:e.length})})]}),n&&x.jsx("div",{className:"px-3 pb-2.5 text-label text-ink-muted whitespace-pre-wrap leading-relaxed border-t border-[var(--border-faint)]/60 pt-2",children:e})]})}function R3({toolName:e,state:t,output:n,error:r,msgId:s,toolCallIdx:i,onApplyProposal:a,onRejectProposal:o,onQuizAnswered:u,quizMastery:l,onPickAction:c,onQuizCompleted:f}){const h=Ge(),m=(e==="record_answer"||e==="mark_mastered")&&t==="output-available"&&typeof n=="object"&&n!==null?n:null;if(m!=null&&m.proposalId){const y=m.status;return y==="applied"?x.jsxs("div",{className:"proposal-card rounded-xl border border-gold/30 bg-gold/5 p-3 flex items-center gap-2","data-testid":"part-proposal",children:[x.jsx(Tu,{className:"w-4 h-4 text-gold shrink-0"}),x.jsx("span",{className:"text-body font-bold text-ink",children:h("chat.proposal.applied")})]}):y==="rejected"?x.jsxs("div",{className:"proposal-card rounded-xl border border-ink/10 bg-ink/5 p-3 flex items-center gap-2","data-testid":"part-proposal",children:[x.jsx(F1,{className:"w-4 h-4 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-body text-ink-muted",children:h("chat.proposal.rejected")})]}):x.jsxs("div",{className:"proposal-card relative rounded-xl border border-brand/30 bg-brand/5 overflow-hidden","data-testid":"part-proposal",children:[x.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-brand"}),x.jsxs("div",{className:"pl-4 pr-3 py-3",children:[x.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[x.jsx("span",{className:"flex items-center justify-center w-7 h-7 rounded-lg bg-brand/15 text-brand shrink-0",children:x.jsx($1,{className:"w-4 h-4"})}),x.jsx("span",{className:"text-lead font-bold text-ink",children:h("chat.proposal.mastered.title")})]}),m.message&&x.jsx("div",{className:"text-body text-ink mb-2 leading-relaxed",children:m.message}),x.jsx("div",{className:"text-caption text-ink-muted mb-3",children:h("chat.proposal.mastered.hint")}),x.jsxs("div",{className:"flex gap-2",children:[x.jsxs("button",{onClick:()=>a==null?void 0:a(m.proposalId,s,i),"data-testid":"proposal-apply",className:"btn-3d-brand px-4 py-1.5 text-body",children:[x.jsx(Tn,{className:"w-3.5 h-3.5 inline"}),h("chat.proposal.confirm")]}),x.jsx("button",{onClick:()=>o==null?void 0:o(m.proposalId,s,i),"data-testid":"proposal-reject",className:"btn-3d-neutral px-4 py-1.5 text-body",children:h("chat.proposal.later")})]})]})]})}if(t==="output-available"&&n&&typeof n=="object"&&"artifactType"in n){const y=n.artifactType;return x.jsx("div",{className:"my-1 max-w-full","data-testid":`inline-artifact-${y}`,"data-tool":e,children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(A3,{data:n,onQuizAnswered:u,quizMastery:l,onPickAction:c,onQuizCompleted:f})})})}const g=M3(e,h);return x.jsx("div",{className:"inline-flex items-center gap-1.5 text-label px-2.5 py-1 rounded-md bg-surface-1/60 border border-[var(--border-faint)]","data-testid":"part-tool","data-tool":e,"data-state":t,children:t==="input-available"?x.jsxs(x.Fragment,{children:[x.jsx("span",{className:"typing-dot w-1.5 h-1.5 bg-brand rounded-full inline-block"}),x.jsxs("span",{className:"text-ink-muted",children:[g,"…"]})]}):t==="output-error"?x.jsxs(x.Fragment,{children:[x.jsx(ah,{className:"w-3.5 h-3.5 text-warning shrink-0"}),x.jsxs("span",{className:"text-warning",children:[g,": ",r]})]}):x.jsxs(x.Fragment,{children:[x.jsx(xh,{className:"w-3.5 h-3.5 text-ink-faint shrink-0"}),x.jsx("span",{className:"text-ink-muted",children:g})]})})}const L3={pre({children:e,...t}){return x.jsx(e0,{...t,children:e})},a({children:e,...t}){return x.jsx("a",{...t,target:"_blank",rel:"noopener noreferrer",children:e})},table({children:e}){return x.jsx("div",{className:"overflow-x-auto my-4",children:x.jsx("table",{children:e})})}};function M3(e,t){return{get_node_info:t("chat.tool.get_node_info"),record_answer:t("chat.tool.record_answer"),mark_mastered:t("chat.tool.mark_mastered"),show_concept_map:t("chat.tool.show_concept_map"),generate_quiz:t("chat.tool.generate_quiz"),compare_table:t("chat.tool.compare_table"),draw_diagram:t("chat.tool.draw_diagram"),show_code_walkthrough:t("chat.tool.show_code_walkthrough")}[e]??e}const ui={maxPerMessage:4,maxImageBytes:5*1024*1024,maxTextBytes:256*1024},P3=new Set(["txt","md","markdown","rst","org","adoc","log","csv","tsv","json","yaml","yml","toml","ini","env","py","js","mjs","cjs","ts","tsx","jsx","go","rs","java","c","h","cpp","hpp","cs","rb","sh","bash","zsh","ps1","sql","html","htm","css","scss","vue","svelte","kt","swift","php","lua","r","dart","scala","clj","ex","exs","erl","hs","ml","jl","m","mm","pl","vb","bat","dockerfile"]);function Sd(e){const t=e.lastIndexOf(".");return t<=0||t===e.length-1?"":e.slice(t+1).toLowerCase()}function D3(e,t,n){return t&&t.startsWith("image/")||["png","jpg","jpeg","webp","gif","bmp"].includes(Sd(e))?n>ui.maxImageBytes?{ok:!1,reason:"tooLargeImage"}:{ok:!0,kind:"image"}:P3.has(Sd(e))?n>ui.maxTextBytes?{ok:!1,reason:"tooLargeText"}:{ok:!0,kind:"text"}:{ok:!1,reason:"unsupported"}}function O3(e,t){const n=e.length,r=n*2,s=new ArrayBuffer(44+r),i=new DataView(s),a=(u,l)=>{for(let c=0;c<l.length;c++)i.setUint8(u+c,l.charCodeAt(c))};a(0,"RIFF"),i.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),i.setUint32(16,16,!0),i.setUint16(20,1,!0),i.setUint16(22,1,!0),i.setUint32(24,t,!0),i.setUint32(28,t*2,!0),i.setUint16(32,2,!0),i.setUint16(34,16,!0),a(36,"data"),i.setUint32(40,r,!0);let o=44;for(let u=0;u<n;u++){const l=e[u]<=-1?-1:e[u]>=1?1:e[u];i.setInt16(o,Math.round(l*32767),!0),o+=2}return s}function F3(e,t){const n=Math.floor(e.length/t),r=new Float32Array(n);for(let s=0;s<n;s++){const i=s*t,a=Math.floor(i),o=i-a,u=e[a]??0,l=e[a+1]??u;r[s]=u+(l-u)*o}return r}function B3(e,t,n={}){if(e.length===0||e.length!==t.length)return e;const r=n.threshold??.012;let s=0;for(;s<e.length-1&&t[s]<r;)s+=1;let i=e.length;for(;i>s+1&&t[i-1]<r;)i-=1;return e.slice(s,i)}function j3(e={}){const t=e.rmsThreshold??.015,n=e.minSpeechMs??300,r=e.silenceMs??1200,s=e.maxMs??6e4,i=e.autoStop!==!1;let a=null,o=0,u=null,l=null,c=!1;return{feed(f,h){a==null&&(a=h);const d=l==null?0:Math.max(0,h-l);if(l=h,f>=t)o+=d,o>=n&&(c=!0,u=h);else if(i&&c&&u!=null&&h-u>=r)return"auto-stop";return i&&h-a>=s?"auto-stop":"listening"},hadSpeech(){return c}}}const Za=16e3;function H3(e,t={}){const[n,r]=w.useState(!1),[s,i]=w.useState(!1),[a,o]=w.useState(0),[u,l]=w.useState(null),[c,f]=w.useState(null),h=w.useRef(null),d=w.useRef(null),m=w.useRef(null),p=w.useRef([]),g=w.useRef([]),y=w.useRef(!1),v=w.useRef(null),T=w.useRef(0),C=w.useRef(e);C.current=e;const E=w.useRef(t);E.current=t;const k=w.useRef(!1),_=w.useRef(!1),A=w.useCallback(()=>{var j,P,L;y.current=!1,(j=m.current)==null||j.disconnect(),m.current=null,(P=d.current)==null||P.getTracks().forEach(F=>F.stop()),d.current=null,(L=h.current)==null||L.close().catch(()=>{}),h.current=null,p.current=[],g.current=[],v.current=null,o(0)},[]),I=w.useCallback(()=>{var K;const j=p.current,P=g.current,L=((K=v.current)==null?void 0:K.hadSpeech())??!1;p.current=[],g.current=[];let F=0;for(const D of j)F+=D.length;if(A(),r(!1),F===0)return;if(!L){f("no-speech");return}const V=B3(j,P);let B=0;for(const D of V)B+=D.length;const q=new Float32Array(B);let R=0;for(const D of V)q.set(D,R),R+=D.length;const $=O3(q,Za);i(!0),f(null),window.api.asrTranscribe($,E.current.locale).then(D=>{D.ok?C.current(D.text):f(D.reason)}).catch(()=>f("asr-failed")).finally(()=>i(!1))},[A]),S=w.useCallback(()=>{y.current&&I()},[I]),M=w.useCallback(()=>{y.current||k.current||(l(null),k.current=!0,(async()=>{var j;try{if(((j=navigator.mediaDevices)==null?void 0:j.getUserMedia)==null){l(window.isSecureContext?"mic-unavailable":"mic-insecure-context");return}const P=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}}),L=window.AudioContext??window.webkitAudioContext;let F;try{F=new L({sampleRate:Za})}catch{F=new L}h.current=F,d.current=P,y.current=!0,v.current=j3({autoStop:E.current.autoStop!==!1});const V=F.createMediaStreamSource(P),B=F.createScriptProcessor(4096,1,1);m.current=B;const q=F.sampleRate/Za;B.onaudioprocess=$=>{var J;if(!y.current)return;const K=$.inputBuffer.getChannelData(0),D=q===1?new Float32Array(K):F3(K,q);p.current.push(D);let Z=0;for(let X=0;X<D.length;X++)Z+=D[X]*D[X];const oe=Math.sqrt(Z/D.length);g.current.push(oe),T.current=T.current*.7+oe*.3,o(Math.min(1,T.current*8)),e1(Math.min(1,T.current*8)),((J=v.current)==null?void 0:J.feed(oe,performance.now()))==="auto-stop"&&y.current&&I()},V.connect(B);const R=F.createGain();R.gain.value=0,B.connect(R),R.connect(F.destination),r(!0),_.current&&(_.current=!1,I())}catch(P){A(),r(!1),l(P instanceof Error?P.message:String(P))}finally{k.current=!1}})())},[A,I]),N=w.useCallback(()=>{y.current?S():k.current&&(_.current=!0)},[S]);return w.useEffect(()=>()=>{y.current&&A()},[A]),{listening:n,transcribing:s,level:a,startError:u,transcribeError:c,clearTranscribeError:()=>f(null),beginHold:M,endHold:N}}function U3({onGotoSettings:e}){var p;const t=Ge(),[n,r]=w.useState(!1),[s,i]=w.useState(null),[a,o]=w.useState(""),[u,l]=w.useState(""),c=w.useRef(null),f=w.useCallback(async()=>{var g,y;try{const[v,T,C,E]=await Promise.all([le.getProviderPresets(),le.listCustomProviders(),le.getSetting("active_provider"),le.getSetting("active_model")]),k=C??"glm",_=await Promise.all(v.map(async j=>await le.getSetting(j.apiKeySetting)!=null)),A=new Set;v.forEach((j,P)=>{(_[P]||j.id===k)&&A.add(j.id)});const I=[],S=(j,P,L)=>{for(const F of L)I.push({providerId:j,providerLabel:P,modelId:F.id,modelLabel:F.label,vision:(F.capabilities??[]).includes("vision"),contextWindow:F.contextWindow})};for(const j of v)A.has(j.id)&&S(j.id,j.label,j.models);const M=T.filter(j=>j.kind==="llm");for(const j of M)S(j.id,j.label,j.models);const N=E??"";if(N&&!I.some(j=>j.providerId===k&&j.modelId===N)){const j=((g=v.find(P=>P.id===k))==null?void 0:g.label)??((y=M.find(P=>P.id===k))==null?void 0:y.label)??k;I.unshift({providerId:k,providerLabel:j,modelId:N,modelLabel:N,vision:!0,contextWindow:null})}i(I),o(k),l(N)}catch{i([])}},[]);w.useEffect(()=>{f();const g=()=>void f();return window.addEventListener("llm-config-changed",g),()=>window.removeEventListener("llm-config-changed",g)},[f]),w.useEffect(()=>{if(!n)return;const g=v=>{var T;v.target instanceof Node&&((T=c.current)==null?void 0:T.contains(v.target))!==!0&&r(!1)},y=v=>{v.key==="Escape"&&r(!1)};return document.addEventListener("pointerdown",g),document.addEventListener("keydown",y),()=>{document.removeEventListener("pointerdown",g),document.removeEventListener("keydown",y)}},[n]);const h=async g=>{if(r(!1),!(g.providerId===a&&g.modelId===u))try{await le.setSetting("active_provider",g.providerId),await le.setSetting("active_model",g.modelId),o(g.providerId),l(g.modelId),window.dispatchEvent(new Event("llm-config-changed"))}catch{}},d=((p=s==null?void 0:s.find(g=>g.providerId===a&&g.modelId===u))==null?void 0:p.modelLabel)??u??t("model.picker.label"),m=[];for(const g of s??[]){const y=m[m.length-1];y&&y.label===g.providerLabel?y.rows.push(g):m.push({label:g.providerLabel,rows:[g]})}return x.jsxs("div",{ref:c,className:"relative","data-testid":"composer-model",children:[x.jsxs("button",{type:"button",onClick:()=>r(!n),"aria-haspopup":"menu","aria-expanded":n,"data-tooltip":t("model.picker.label"),"data-testid":"composer-model-trigger",className:"flex items-center gap-1 max-w-[13rem] px-1.5 py-0.5 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:[x.jsx(M1,{className:"w-3 h-3 shrink-0 coarse-only","aria-hidden":!0}),x.jsx("span",{className:"truncate tb-label",children:d}),x.jsx(sh,{className:`w-3 h-3 shrink-0 tb-chevron transition-transform ${n?"":"rotate-180"}`})]}),n&&x.jsxs("div",{role:"menu","aria-label":t("model.picker.label"),"data-testid":"composer-model-menu",className:"absolute bottom-full right-0 mb-1.5 z-50 w-64 max-w-[calc(100vw-1.5rem)] max-h-72 overflow-y-auto bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] py-1.5",children:[m.length===0&&x.jsx("div",{className:"px-3 py-2 text-caption text-ink-faint",children:t("model.picker.noneConfigured")}),m.map(g=>x.jsxs("div",{role:"group","aria-label":g.label,children:[x.jsx("div",{className:"px-3 pt-1.5 pb-0.5 text-caption font-bold text-ink-faint",children:g.label}),g.rows.map(y=>{const v=y.providerId===a&&y.modelId===u;return x.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":v,onClick:()=>void h(y),className:`w-full flex items-center gap-1.5 px-3 py-1.5 text-left transition-colors ${v?"text-brand":"text-ink-strong hover:bg-ink/[0.06]"}`,children:[x.jsx(Tn,{className:`w-3.5 h-3.5 shrink-0 ${v?"opacity-100":"opacity-0"}`}),x.jsx("span",{className:"flex-1 truncate text-label",children:y.modelLabel}),y.vision&&x.jsx(U1,{className:"w-3 h-3 shrink-0 text-ink-faint","aria-label":t("model.picker.vision")})]},`${y.providerId}:${y.modelId}`)})]},g.label)),x.jsx("div",{className:"border-t border-[var(--border)] mt-1 pt-1",children:x.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{r(!1),e()},className:"w-full flex items-center gap-1.5 px-3 py-1.5 text-left text-label text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:[x.jsx(lx,{className:"w-3.5 h-3.5"}),t("model.picker.manage")]})})]})]})}const zo=5.5,Ad=2*Math.PI*zo,lr=["system","node","learner","history","draft"],Cd={system:"bg-accent",node:"bg-brand",learner:"bg-gold",history:"bg-ink/50",draft:"bg-exam"};function z3({info:e,historyTokens:t,draftTokens:n}){const r=Ge(),[s,i]=w.useState(!1),a=w.useRef(null);if(w.useEffect(()=>{!(e!=null&&e.contextWindow)&&s&&i(!1)},[e==null?void 0:e.contextWindow,s]),w.useEffect(()=>{if(!s)return;const h=m=>{var p;m.target instanceof Node&&((p=a.current)==null?void 0:p.contains(m.target))!==!0&&i(!1)},d=m=>{m.key==="Escape"&&i(!1)};return document.addEventListener("pointerdown",h),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",h),document.removeEventListener("keydown",d)}},[s]),!e)return null;const o={system:e.systemTokens,node:e.nodeTokens,learner:e.learnerTokens,history:t,draft:n},u=lr.reduce((h,d)=>h+o[d],0),l=xx(u,e.contextWindow),c=l!==null&&l>=85,f=bx(lr.map(h=>o[h]),l??0);return x.jsxs("span",{ref:a,className:"relative inline-flex items-center","data-testid":"composer-context",children:[x.jsxs("button",{type:"button",onClick:()=>i(!s),disabled:e.contextWindow===null,"aria-label":r("context.aria",{p:l!==null?`${l}%`:ar(u)}),"aria-haspopup":"dialog","aria-expanded":s,"data-testid":"composer-context-trigger","data-tooltip":e.contextWindow===null?`${r("context.label")} ~${ar(u)} · ${r("context.unknownWindow")}`:r("context.aria",{p:`${l}%`}),className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium transition-colors ${c?"text-warning":"text-ink-muted"} hover:bg-ink/[0.06] disabled:hover:bg-transparent`,children:[x.jsxs("svg",{viewBox:"0 0 14 14",width:"14",height:"14","aria-hidden":!0,className:"shrink-0",children:[x.jsx("circle",{cx:"7",cy:"7",r:zo,fill:"none",strokeWidth:"2",className:"stroke-ink/20"}),x.jsx("circle",{cx:"7",cy:"7",r:zo,fill:"none",strokeWidth:"2",stroke:"currentColor",strokeLinecap:"round",strokeDasharray:`${Ad*(l??100)/100} ${Ad}`,transform:"rotate(-90 7 7)"})]}),l!==null?x.jsxs("span",{className:"tb-label",children:[l,"%"]}):x.jsxs("span",{className:"tb-label",children:["~",ar(u)]})]}),s&&e.contextWindow!==null&&x.jsxs("div",{role:"dialog","aria-label":r("context.label"),"data-testid":"composer-context-panel",className:"absolute bottom-full right-0 mb-1.5 z-50 w-64 max-w-[calc(100vw-1.5rem)] bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] p-3",children:[x.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[x.jsx("span",{className:"text-label font-bold text-ink-strong",children:r("context.label")}),x.jsxs("span",{className:`text-caption ${c?"text-warning":"text-ink-muted"}`,children:[r("context.approx")," ",ar(u)," / ",ar(e.contextWindow)]})]}),x.jsx("div",{className:"flex h-2 rounded-full overflow-hidden bg-ink/10 mb-2",role:"img","aria-label":`${l}%`,children:lr.map(h=>f[lr.indexOf(h)]>0?x.jsx("div",{className:Cd[h],style:{width:`${f[lr.indexOf(h)]}%`}},h):null)}),x.jsx("dl",{className:"space-y-1",children:lr.map(h=>x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsxs("dt",{className:"flex items-center gap-1.5 text-caption text-ink-muted",children:[x.jsx("span",{className:`w-2 h-2 rounded-sm ${Cd[h]}`,"aria-hidden":!0}),r(`context.${h}`)]}),x.jsxs("dd",{className:"text-caption text-ink-strong tabular-nums",children:["~",ar(o[h])]})]},h))})]})]})}const Vo={glm:{fast:e=>{e.thinking={type:"disabled"},e.reasoning_effort="low"},deep:e=>{e.thinking={type:"enabled"}}},qwen:{fast:e=>{e.enable_thinking=!1},deep:e=>{e.enable_thinking=!0}},siliconcloud:{fast:e=>{e.enable_thinking=!1},deep:e=>{e.enable_thinking=!0}}};function V3(e,t,n){if(e==="openai"||e in Vo)return e;const r=(t??"").toLowerCase(),s=(n??"").toLowerCase();return r.includes("bigmodel.cn")||r.includes("z.ai")||s.startsWith("glm")?"glm":r.includes("dashscope")||s.startsWith("qwen")?"qwen":r.includes("siliconflow")?"siliconcloud":e}function q3(e,t,n){return t==="anthropic"||t==="google"||e==="openai"||e in Vo?!0:V3(e,n==null?void 0:n.baseUrl,n==null?void 0:n.model)in Vo}const Ja=[{value:"",labelKey:"effort.auto.label",descKey:"effort.auto.desc"},{value:"fast",labelKey:"effort.fast.label",descKey:"effort.fast.desc"},{value:"deep",labelKey:"effort.deep.label",descKey:"effort.deep.desc"}];function $3(){const e=Ge(),[t,n]=w.useState(!1),[r,s]=w.useState(""),[i,a]=w.useState(!0),o=w.useRef(null),u=w.useRef(null),[l,c]=w.useState("right"),[f,h]=w.useState(0),d=w.useRef(0),[m,p]=w.useState(0);w.useLayoutEffect(()=>{if(!t){p(0),d.current=0,h(0);return}const T=u.current;if(!T)return;const C=T.getBoundingClientRect(),E=C.left-d.current,k=C.right-d.current,_=window.innerWidth;if(m===0){if(E<8&&k<=_-8){c("left"),p(1);return}if(k>_-8&&E>=8){c("right"),p(1);return}p(1)}const A=Math.min(0,_-8-k)+Math.max(0,8-E);A!==d.current&&(d.current=A,h(A))},[t,m]);const g=w.useCallback(async()=>{var T;try{const[C,E,k,_,A]=await Promise.all([le.getSetting("active_provider"),le.getSetting("reasoning_effort"),le.getProviderPresets(),le.listCustomProviders(),le.getSetting("active_model")]),I=C??"glm",S=_.find(j=>j.id===I),M=((T=k.find(j=>j.id===I))==null?void 0:T.protocol)??(S==null?void 0:S.protocol)??"openai-compatible";a(q3(I,M,{baseUrl:S==null?void 0:S.baseUrl,model:A??(S==null?void 0:S.defaultModel)}));const N=E??"";s(N==="fast"||N==="deep"?N:"")}catch{a(!1)}},[]);w.useEffect(()=>{g();const T=()=>void g();return window.addEventListener("llm-config-changed",T),()=>window.removeEventListener("llm-config-changed",T)},[g]),w.useEffect(()=>{if(!t)return;const T=E=>{var k;E.target instanceof Node&&((k=o.current)==null?void 0:k.contains(E.target))!==!0&&n(!1)},C=E=>{E.key==="Escape"&&n(!1)};return document.addEventListener("pointerdown",T),document.addEventListener("keydown",C),()=>{document.removeEventListener("pointerdown",T),document.removeEventListener("keydown",C)}},[t]);const y=async T=>{if(n(!1),T!==r){s(T);try{await le.setSetting("reasoning_effort",T)}catch{s(r)}}},v=Ja.find(T=>T.value===r)??Ja[0];return x.jsxs("div",{ref:o,className:"relative","data-testid":"composer-effort",children:[x.jsxs("button",{type:"button",onClick:()=>!!i&&n(!t),disabled:!i,"aria-haspopup":"menu","aria-expanded":t,"data-testid":"composer-effort-trigger","data-tooltip":e(i?"effort.label":"effort.unsupported"),className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium transition-colors ${r?"text-accent":"text-ink-muted"} ${i?"hover:text-ink-strong hover:bg-ink/[0.06]":"opacity-40 cursor-not-allowed"}`,children:[x.jsx(P1,{className:"w-3 h-3 shrink-0"}),x.jsx("span",{className:"truncate tb-label",children:e(v.labelKey)}),x.jsx(sh,{className:`w-3 h-3 shrink-0 tb-chevron transition-transform ${t?"":"rotate-180"}`})]}),t&&x.jsx("div",{ref:u,role:"menu","aria-label":e("effort.label"),"data-testid":"composer-effort-menu",style:{transform:f?`translateX(${f}px)`:void 0},className:`absolute bottom-full ${l==="right"?"right-0":"left-0"} mb-1.5 z-50 w-60 max-w-[calc(100vw-1.5rem)] bg-surface-0 rounded-xl shadow-elevated border border-[var(--border)] py-1.5`,children:Ja.map(T=>{const C=T.value===r;return x.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":C,onClick:()=>void y(T.value),className:`w-full flex items-start gap-1.5 px-3 py-1.5 text-left transition-colors ${C?"text-brand":"text-ink-strong hover:bg-ink/[0.06]"}`,children:[x.jsx(Tn,{className:`w-3.5 h-3.5 shrink-0 mt-0.5 ${C?"opacity-100":"opacity-0"}`}),x.jsxs("span",{className:"flex-1",children:[x.jsx("span",{className:"block text-label font-bold",children:e(T.labelKey)}),x.jsx("span",{className:"block text-caption text-ink-faint",children:e(T.descKey)})]})]},T.value||"auto")})})]})}const W3=w.lazy(()=>Se(()=>import("./VoicePanel-CekOlcc8.js"),__vite__mapDeps([33,1,2,31]),import.meta.url).then(e=>({default:e.VoicePanel}))),Y3={direct:"soul.direct",guide:"soul.guide",practice:"soul.practice"},G3={direct:vn,guide:oh,practice:W1},K3={direct:"soul.direct.desc",guide:"soul.guide.desc",practice:"soul.practice.desc"},X3=["image/png","image/jpeg","image/webp","image/gif",".txt",".md",".markdown",".rst",".org",".adoc",".log",".csv",".tsv",".json",".yaml",".yml",".toml",".ini",".py",".js",".mjs",".cjs",".ts",".tsx",".jsx",".go",".rs",".java",".c",".h",".cpp",".hpp",".cs",".rb",".sh",".sql",".html",".css",".scss",".vue",".svelte",".kt",".swift",".php"].join(",");let _d=0;function Q3({nodeId:e,agentReady:t,streaming:n,souls:r,activeSoul:s,starterPrompts:i,onPickSoul:a,onSend:o,onStop:u,onLogFriction:l,onGotoSettings:c,insertText:f,historyTokens:h}){const d=Ge(),m=vh(),[p,g]=w.useState(""),[y,v]=w.useState([]),[T,C]=w.useState(null),[E,k]=w.useState(null),[_,A]=w.useState(!1),I=w.useRef(null),S=w.useRef(0),[M,N]=w.useState(!0);w.useEffect(()=>{le.getSetting("asr_auto_stop").then(te=>N(te!=="0"))},[]);const[j,P]=w.useState(!1);w.useEffect(()=>(Nl(j),()=>Nl(!1)),[j]);const[L,F]=w.useState(""),[V,B]=w.useState(!1),[q,R]=w.useState(null),$=H3(te=>{F(te),B(!0)},{locale:m,autoStop:M}),K=$.startError??$.transcribeError;w.useEffect(()=>{if(!K)return;R(d(K==="no-speech"?"chat.speech.no_speech":K==="model-missing"?"chat.speech.asr_model_missing":K==="engine-unavailable"?"chat.speech.engine_unavailable":K==="custom-provider-missing"?"chat.speech.custom_provider_missing":K==="groq-key-missing"?"chat.speech.groq_key_missing":K==="azure-key-missing"?"chat.speech.azure_stt_key_missing":K==="azure-region-missing"?"chat.speech.azure_stt_region_missing":K==="mic-insecure-context"?"chat.speech.asr_insecure_context":K==="mic-unavailable"?"chat.speech.asr_start_fail":"chat.speech.asr_failed")),$.clearTranscribeError()},[K,$,d]);const D=q?"error":$.listening?"recording":$.transcribing?"transcribing":V?"review":"idle",Z=(te,Ie,be)=>{t1(),o(te,Ie,be)},oe=w.useCallback(()=>{F(""),B(!1),R(null)},[]),z=w.useCallback(()=>{P(!1),oe()},[oe]),J=()=>{const te=L.trim();!te||n||!e||(Z(te),z())};w.useEffect(()=>{f&&g(te=>te.trim()?`${te}
451
451
 
452
452
  ${f}`:f)},[f]),w.useEffect(()=>{if(!e){k(null);return}let te=!1;(async()=>{try{const be=await le.getContextUsage(e,m);te||k(be)}catch{te||k(null)}})();const Ie=()=>{le.getContextUsage(e,m).then(be=>{te||k(be)}).catch(()=>{})};return window.addEventListener("llm-config-changed",Ie),()=>{te=!0,window.removeEventListener("llm-config-changed",Ie)}},[e,m]),w.useEffect(()=>{if(!T)return;const te=setTimeout(()=>C(null),3e3);return()=>clearTimeout(te)},[T]);const X=w.useRef(new Set);w.useEffect(()=>()=>{for(const te of X.current)URL.revokeObjectURL(te)},[]);const ce=w.useCallback(te=>{v(Ie=>{const be=Ie.find(ze=>ze.id===te);return be!=null&&be.previewUrl&&(URL.revokeObjectURL(be.previewUrl),X.current.delete(be.previewUrl)),Ie.filter(ze=>ze.id!==te)})},[]),he=w.useCallback(async te=>{if(te.length===0)return;const Ie=ui.maxPerMessage-y.length;if(Ie<=0){C(d("chat.attach.tooMany",{n:ui.maxPerMessage}));return}const be=te.length>Ie?te.slice(0,Ie):te;te.length>Ie&&C(d("chat.attach.tooMany",{n:ui.maxPerMessage}));const ze=[],rt=[];for(const Me of be){const Xe=D3(Me.name,Me.type,Me.size);if(!Xe.ok){C(Xe.reason==="unsupported"?d("chat.attach.unsupported",{name:Me.name}):Xe.reason==="tooLargeImage"?d("chat.attach.tooLargeImage",{name:Me.name}):d("chat.attach.tooLargeText",{name:Me.name}));continue}if(Xe.kind==="image"){if((E==null?void 0:E.visionCapable)===!1){C(d("chat.attach.visionUnsupported"));continue}const G=await new Promise(pe=>{const de=new FileReader;de.onload=()=>{const Ne=de.result;pe(typeof Ne=="string"?Ne.slice(Ne.indexOf(",")+1):null)},de.onerror=()=>pe(null),de.readAsDataURL(Me)});if(G===null)continue;const se=URL.createObjectURL(Me);rt.push(se),ze.push({id:++_d,kind:"image",name:Me.name,mime:Me.type||"image/png",size:Me.size,previewUrl:se,base64:G})}else try{const G=await Me.text();ze.push({id:++_d,kind:"text",name:Me.name,mime:Me.type||"text/plain",size:Me.size,text:G})}catch{}}if(ze.length>0){for(const Me of rt)X.current.add(Me);v(Me=>[...Me,...ze])}else for(const Me of rt)URL.revokeObjectURL(Me)},[y.length,E==null?void 0:E.visionCapable,d]),re=te=>{const Ie=te.trim();if(n||!e||!Ie&&y.length===0)return;const be=Ie||wu("chat.attach.imageOnlyText"),ze=y.map(rt=>({kind:rt.kind,name:rt.name,mime:rt.mime,size:rt.size,data:rt.kind==="image"?rt.base64??"":rt.text??"",...rt.kind==="image"&&rt.previewUrl?{previewUrl:rt.previewUrl}:{}}));Z(be,void 0,ze.length>0?ze:void 0),g(""),v([])},ne=()=>re(p),xe=te=>{n||(Z(te.message,te.label),te.frictionCategory&&(l==null||l(te.frictionCategory,null)))},ve=te=>{const Ie=Array.from(te.clipboardData.files??[]);Ie.length>0&&(te.preventDefault(),he(Ie))},Le=te=>{te.dataTransfer.types.includes("Files")&&(te.preventDefault(),S.current+=1,A(!0))},Be=te=>{te.dataTransfer.types.includes("Files")&&(S.current=Math.max(0,S.current-1),S.current===0&&A(!1))},Ee=te=>{te.dataTransfer.types.includes("Files")&&(te.preventDefault(),S.current=0,A(!1),he(Array.from(te.dataTransfer.files??[])))},Oe=w.useMemo(()=>bh(p),[p]);return t?x.jsxs("div",{className:"px-5 pb-4 pt-1 shrink-0","data-testid":"composer",children:[!j&&i.length>0&&e&&x.jsx("div",{className:"flex items-center gap-1.5 overflow-x-auto pb-2","data-testid":"starter-prompts",children:i.map((te,Ie)=>x.jsx("button",{onClick:()=>xe(te),disabled:n,"data-testid":`starter-prompt-${Ie}`,"data-tooltip":te.hint??te.label,className:"shrink-0 whitespace-nowrap px-2.5 py-1 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors disabled:opacity-30",children:te.label},Ie))}),x.jsx("div",{className:`composer-card relative rounded-2xl transition-colors px-3 pt-2 pb-1.5 ${_?"bg-accent/10 ring-1 ring-accent":"bg-ink/[0.05] focus-within:bg-ink/[0.07]"}`,onDragEnter:Le,onDragOver:te=>{te.dataTransfer.types.includes("Files")&&te.preventDefault()},onDragLeave:Be,onDrop:Ee,"data-testid":"composer-card",children:j?x.jsxs(x.Fragment,{children:[D!=="idle"&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(W3,{view:D,level:$.level,text:L,onTextChange:F,onSend:J,onRerecord:oe,errorMessage:q,sendDisabled:n||!e||!L.trim()})}),x.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[x.jsxs("span",{className:"flex items-center gap-1.5 text-label text-ink-muted font-medium",children:[x.jsx(ss,{className:"w-3.5 h-3.5 text-accent"}),d("chat.speech.dictation")]}),x.jsxs("button",{type:"button",onClick:z,"data-tooltip":d("chat.speech.back_to_keyboard"),"aria-label":d("chat.speech.back_to_keyboard"),"data-testid":"voice-keyboard-toggle",className:"touch-lift flex items-center gap-1 px-2 py-0.5 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:[x.jsx(K1,{className:"w-3.5 h-3.5"}),x.jsx("span",{children:d("chat.speech.keyboard")})]})]}),x.jsxs("button",{type:"button",onPointerDown:te=>{te.preventDefault(),$.beginHold()},onPointerUp:$.endHold,onPointerLeave:$.endHold,onPointerCancel:$.endHold,onContextMenu:te=>te.preventDefault(),disabled:!e||D!=="idle","data-testid":$.listening?"voice-hold-btn-active":"voice-hold-btn",className:`w-full py-5 rounded-xl text-lead font-bold flex items-center justify-center gap-2 transition-all touch-none select-none disabled:opacity-40 ${$.listening?"bg-accent/25 text-accent scale-[0.99]":"bg-accent/10 text-accent hover:bg-accent/20 active:bg-accent/25 active:scale-[0.99]"}`,children:[x.jsx(ss,{className:"w-5 h-5"}),$.listening?d("chat.speech.release_to_stop"):d("chat.speech.hold_to_talk")]})]}):x.jsxs(x.Fragment,{children:[r.length>0&&x.jsxs("div",{className:"flex items-center gap-1 overflow-x-auto mb-1","data-testid":"soul-picker",children:[x.jsx("span",{className:"text-body text-ink-faint shrink-0",children:d("chat.soul.label")}),r.map(te=>{const Ie=s===te.name,be=G3[te.name]??oh,ze=d(K3[te.name]??"soul.direct.desc");return x.jsxs("button",{onClick:()=>a(te.name),"data-testid":`soul-pill-${te.name}`,"data-tooltip":ze,className:`shrink-0 flex items-center gap-1 px-2 py-0.5 rounded-full text-body font-medium transition-colors ${Ie?"bg-brand/15 text-brand":"text-ink-muted hover:text-ink-strong hover:bg-ink/5"}`,children:[x.jsx(be,{className:"w-3.5 h-3.5"}),x.jsx("span",{children:d(Y3[te.name]??"soul.direct")})]},te.id)})]}),y.length>0&&x.jsxs("div",{className:"flex gap-1.5 flex-wrap mb-1.5","data-testid":"composer-attachments",children:[(E==null?void 0:E.visionBridgeModel)&&y.some(te=>te.kind==="image")&&x.jsxs("div",{className:"w-full flex items-center gap-1 text-caption text-ink-muted","data-testid":"vision-bridge-chip",children:[x.jsx(ox,{className:"w-3.5 h-3.5 shrink-0"}),x.jsx("span",{children:d("chat.attach.bridgeChip",{model:E.visionBridgeModel})})]}),y.map(te=>te.kind==="image"?x.jsxs("div",{className:"relative w-16 h-16 shrink-0",children:[x.jsx("img",{src:te.previewUrl,alt:te.name,className:"w-16 h-16 object-cover rounded-lg border border-[var(--border)]"}),x.jsx("button",{type:"button",onClick:()=>ce(te.id),"aria-label":d("chat.attach.remove",{name:te.name}),className:"touch-target-sm absolute -top-1.5 -right-1.5 w-5 h-5 rounded-full bg-ink/70 hover:bg-warning text-white flex items-center justify-center transition-colors",children:x.jsx(yr,{className:"w-3 h-3"})})]},te.id):x.jsxs("span",{className:"inline-flex items-center gap-1 pl-2 pr-1 py-1 rounded-full bg-ink/[0.08] text-caption text-ink-strong",children:[x.jsx(Us,{className:"w-3 h-3 shrink-0 text-ink-faint"}),x.jsx("span",{className:"truncate max-w-[10rem]",children:te.name}),x.jsx("button",{type:"button",onClick:()=>ce(te.id),"aria-label":d("chat.attach.remove",{name:te.name}),className:"touch-target-sm w-4 h-4 rounded-full hover:bg-ink/20 flex items-center justify-center text-ink-muted hover:text-warning transition-colors",children:x.jsx(yr,{className:"w-2.5 h-2.5"})})]},te.id))]}),T&&x.jsx("div",{className:"text-caption text-warning pb-1",role:"status","data-testid":"composer-notice",children:T}),x.jsxs("div",{className:"flex gap-2 items-end",children:[x.jsx("textarea",{value:p,onChange:te=>g(te.target.value),onFocus:()=>Rl(!0),onBlur:()=>Rl(!1),onKeyDown:te=>{te.key==="Enter"&&!te.shiftKey&&(te.preventDefault(),ne())},onPaste:ve,placeholder:d(e?"chat.input.placeholder":"chat.input.no_node"),disabled:n||!e,rows:2,"data-testid":"chat-input",className:"flex-1 bg-transparent text-ink-strong text-body rounded-lg px-1 py-1 resize-none focus:outline-none disabled:opacity-40 placeholder:text-ink-faint"}),n?x.jsx("button",{onClick:u,"data-testid":"chat-stop",className:"btn-icon-3d-warning shrink-0 w-9 h-9",title:d("chat.stop"),"aria-label":d("chat.stop"),children:x.jsx(vu,{className:"w-3.5 h-3.5 fill-current"})}):x.jsx("button",{onClick:ne,disabled:n||!p.trim()&&y.length===0||!e,"data-testid":"chat-send",className:"btn-icon-3d-brand shrink-0 w-9 h-9",title:d("chat.send"),"aria-label":d("chat.send"),children:x.jsx(R1,{className:"w-4 h-4"})})]}),x.jsxs("div",{className:"composer-toolbar flex flex-wrap items-center justify-between gap-x-0.5 gap-y-1 mt-0.5",children:[x.jsx("button",{type:"button",onClick:()=>{oe(),P(!0)},disabled:!e,"data-tooltip":d("chat.speech.dictation"),"aria-label":d("chat.speech.dictation"),"data-testid":"composer-mic",className:"flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors disabled:opacity-50",children:x.jsx(ss,{className:"w-3.5 h-3.5"})}),x.jsx("button",{type:"button",onClick:()=>{var te;return(te=I.current)==null?void 0:te.click()},"data-tooltip":d("chat.attach.add"),"aria-label":d("chat.attach.add"),"data-testid":"composer-attach",className:"flex items-center gap-1 px-1.5 py-0.5 rounded-full text-caption font-medium text-ink-muted hover:text-ink-strong hover:bg-ink/[0.06] transition-colors",children:x.jsx(nx,{className:"w-3 h-3"})}),x.jsx("input",{ref:I,type:"file",multiple:!0,accept:X3,className:"hidden",onChange:te=>{he(Array.from(te.target.files??[])),te.target.value=""}}),x.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-0.5",children:[x.jsx($3,{}),x.jsx(z3,{info:E,historyTokens:h,draftTokens:Oe}),x.jsx(U3,{onGotoSettings:c})]})]})]})})]}):x.jsx("div",{className:"px-5 pb-4 shrink-0","data-testid":"composer-nokey",children:x.jsxs("div",{className:"flex items-center justify-center gap-3 py-3 text-body text-ink-muted",children:[x.jsx("span",{children:d("chat.no_key.short")}),x.jsx("button",{onClick:c,className:"text-brand hover:underline font-bold",children:d("chat.no_key.cta")})]})})}const Id={viseme:"closed",open:0};function Z3(e){const[t,n]=w.useState(Id);return w.useEffect(()=>{if(!e){n(Id);return}const r=new Uint8Array(256),s=new Uint8Array(Yp/2);let i=0,a="",o=null,u=0;const l=()=>{const c=HC();if(c){let f,h;if(c.timeline&&c.timeline.cues.length>0){const p=Math.max(0,c.ctx.currentTime-c.startedAtCtxTime),g=JC(c.timeline,p);f=(g==null?void 0:g.viseme)??"closed",h=(g==null?void 0:g.level)??0}else if(c.analyser){const p=c.analyser;p.getByteTimeDomainData(r),p.getByteFrequencyData(s);const g=n1(r,s,p.context.sampleRate,p.fftSize);f=g.viseme,f!==a.split(":")[0]?(f==="closed"||f===o?f===o&&u++:(o=f,u=1),f!=="closed"&&!(f===o&&u>=2)&&(f=a.split(":")[0]||"closed")):(o=null,u=0),h=g.level}else f="closed",h=0;const d=r1(f,h),m=f+":"+d;m!==a&&(a=m,n({viseme:f,open:d}))}i=requestAnimationFrame(l)};return i=requestAnimationFrame(l),()=>cancelAnimationFrame(i)},[e]),t}const J3=22,e_=35e-5,Nd=.012,Rd=.12,Ld=.3,t_=16.667,eo=12,n_=3.2,Md=56,cr=.6;function r_(e,t,n,r,s=0,i=0){let a=0,o=0;for(const l of r){const c=e-l.x,f=t-l.y,h=Math.hypot(c,f),d=l.r+n,m=d+Md;if(h>=m)continue;if(h<1e-4){o-=cr;continue}const p=c/h,g=f/h,y=Math.min(1.6,Math.max(0,1-(h-d)/Md)),v=s*p+i*g,T=v<0?1+Math.min(1.6,-v/4):1;a+=p*cr*y*T,o+=g*cr*y*T}const u=Math.hypot(a,o);return u>cr*2&&(a=a/u*cr*2,o=o/u*cr*2),{x:a,y:o}}function i_(e,t,n,r=34){const s=n*.001;return{x:e.x+Math.sin(s*.31+t*2.1)*r,y:e.y+Math.sin(s*.47+t*4.7)*(r*.55)+Math.sin(s*1.7+t)*4}}function s_(e,t,n,r,s=t_){const i=Math.max(64,s*s),a=qo((n.x-e.x)*Nd-t.x*Rd,Ld),o=qo((n.y-e.y)*Nd-t.y*Rd,Ld);return{fx:a*r/i,fy:o*r/i-r*.001}}function qo(e,t){return e>t?t:e<-t?-t:e}function a_(e,t,n,r,s,i,a,o,u,l){const c=e-i,f=t-a,h=Math.hypot(c,f),d=s+l;if(h>=d||h<1e-4)return null;const m=c/h,p=f/h,g=n-o,y=r-u,v=g*m+y*p,T=d-h,C=v<0?-v*.9:0;return{nx:m,ny:p,dvx:m*(T*.55+C*.85),dvy:p*(T*.55+C*.85),bfx:-m*C*.02,bfy:-p*C*.02,hitSpeed:-v}}function o_(e,t){return Math.hypot(e,t)<.35?0:qo(e*.06,.5)}function u_(e,t,n,r=0){const s=[.14,.32,.5,.68,.86],i=[.38,.5,.62],a=(r%15+15)%15;let o={x:e*.5,y:t*.5},u=-1/0;for(let l=0;l<15;l++){const c=(a+l)%15,f=e*s[c%5],h=t*i[Math.floor(c/5)];let d=1/0;for(const m of n){const p=Math.hypot(f-m.x,h-m.y)-m.r;p<d&&(d=p)}d>u+1e-9&&(u=d,o={x:f,y:h})}return o}function l_(e,t,n=220){let r=null,s=n;for(const i of t){const a=Math.hypot(i.x-e.x,i.y-e.y);a<s&&(s=a,r={x:i.x,y:i.y})}return r}function c_(e){const t=e.radius??J3,{Bodies:n,Body:r,Composite:s,Engine:i}=ln,a=i.create();a.gravity.y=1,a.positionIterations=4,a.velocityIterations=3;const o=n.circle(e.width*.7,120,t,{restitution:.55,friction:.02,frictionAir:.028,density:e_});s.add(a.world,o);const u=240;let l=[];const c=(d,m)=>{for(const g of l)s.remove(a.world,g);const p=(g,y,v,T)=>n.rectangle(g,y,v,T,{isStatic:!0,restitution:.5});l=[p(-u/2,m/2-160,u,m+640),p(d+u/2,m/2-160,u,m+640),p(d/2,m+u/2,d+u*2,u),p(d/2,-320-u/2,d+u*2,u)];for(const g of l)s.add(a.world,g)};c(e.width,e.height);let f=0,h=e.width;return{body:o,resize(d,m){h=d,c(d,m)},step(d,m,p,g,y){const v=g<f;i.update(a,Math.min(33,Math.max(8,d)));let T=!1;if(!v&&m){const j=y!=null&&y.settle?{x:m.x,y:m.y+Math.sin(g*.0012)*2}:i_(m,Math.floor(g/4200),g),P=Math.max(64,d*d),L=s_({x:o.position.x,y:o.position.y},{x:o.velocity.x,y:o.velocity.y},j,o.mass,d),F=r_(o.position.x,o.position.y,t,p,o.velocity.x,o.velocity.y);r.applyForce(o,o.position,{x:L.fx+F.x*o.mass/P,y:L.fy+F.y*o.mass/P}),r.setAngularVelocity(o,o.angularVelocity-o.angle*.06-o.angularVelocity*.08)}{const j=o.velocity,P=Math.hypot(j.x,j.y);P>eo&&r.setVelocity(o,{x:j.x/P*eo,y:j.y/P*eo})}let C=0,E=0,k=0,_=0,A=0;for(const j of p){const P=a_(o.position.x,o.position.y,o.velocity.x,o.velocity.y,t,j.x,j.y,j.vx,j.vy,j.r);P&&(E+=P.nx*Math.min(4,P.dvx),k+=P.ny*Math.min(4,P.dvy),_+=P.dvx*.9,A+=P.dvy*.9,j.isStatic||j.push(P.bfx,P.bfy),P.hitSpeed>C&&(C=P.hitSpeed))}const I=Math.hypot(E,k);I>4&&(E=E/I*4,k=k/I*4);const S=Math.hypot(_,A);S>7&&(_=_/S*7,A=A/S*7),(I>0||S>0)&&(r.setPosition(o,{x:o.position.x+E,y:o.position.y+k}),r.setVelocity(o,{x:o.velocity.x+_,y:o.velocity.y+A})),C>=n_&&!v&&(f=g+900,T=!0);const M=o.position;M.x<t&&(r.setPosition(o,{x:t,y:M.y}),o.velocity.x<0&&r.setVelocity(o,{x:-o.velocity.x*.5,y:o.velocity.y})),M.x>h-t&&(r.setPosition(o,{x:h-t,y:M.y}),o.velocity.x>0&&r.setVelocity(o,{x:-o.velocity.x*.5,y:o.velocity.y}));const N=y==null?void 0:y.ceilY;return N!==void 0&&M.y<N+t&&(r.setPosition(o,{x:M.x,y:N+t}),o.velocity.y<0&&r.setVelocity(o,{x:o.velocity.x,y:-o.velocity.y*.5})),T},dizzyRemaining(d){return Math.max(0,f-d)},throwDizzy(d){f=d+900},dispose(){s.clear(a.world,!1),i.clear(a)}}}const Lt={rail:76,chat:96,notebook:120,titlebar:44};function Pd(){const t=document.querySelector('[data-testid="composer-card"]')??document.querySelector('[data-testid="composer"]')??document.querySelector('[data-testid="composer-nokey"]');if(!t)return null;const n=t.getBoundingClientRect();return{x:n.right-78,y:n.top-44}}function d_(){const e=document.querySelector('[data-testid="notebook-panel"]');if(!e)return null;const t=e.getBoundingClientRect();return{x:t.right-64,y:t.top+84}}function f_({courseId:e}){const t=w.useSyncExternalStore(i1,Bi),n=Z3(t.state.talking),r=bu(),[s,i]=w.useState(!1),[a,o]=w.useState(null),[u,l]=w.useState("rail"),c=w.useRef("rail"),f=w.useRef(null),[h,d]=w.useState(!1),m=w.useRef(!1),p=w.useRef(null),g=w.useRef(null),y=w.useRef(null),v=w.useRef(null),T=w.useRef(t.state.zone),C=w.useRef(!1),E=w.useRef(null),k=w.useRef(!1),_=w.useRef(0),A=w.useRef(null),[I,S]=w.useState(null),M=w.useRef(0),N=w.useRef(null),j=w.useRef(null),P=w.useRef(null),L=w.useRef(0),F=w.useRef(null),V=w.useRef(0),B=w.useRef({pane:"rail",bucket:-1}),q=w.useRef(null),R=w.useRef(null);w.useEffect(()=>{var oe,z,J;if(u===T.current||(T.current=u,r))return;i(!0),(z=(oe=p.current)==null?void 0:oe.animate)==null||z.call(oe,[{transform:"scale(1, 1)"},{transform:"scale(1.08, 0.86)",offset:.3},{transform:"scale(0.96, 1.1)",offset:.65},{transform:"scale(1, 1)"}],{duration:620,easing:"cubic-bezier(0.2, 1.4, 0.4, 1)",composite:"add"}),(J=p.current)==null||J.classList.add("cp-takeoff"),setTimeout(()=>{var X;return(X=p.current)==null?void 0:X.classList.remove("cp-takeoff")},650);const Z=[setTimeout(()=>i(!1),950),setTimeout(()=>{var ce;const X=p.current;!X||u==="rail"||(s1(),(ce=X.animate)==null||ce.call(X,[{transform:"scale(1, 1)"},{transform:"scale(1.07, 0.88)",offset:.42},{transform:"scale(0.98, 1.03)",offset:.72},{transform:"scale(1, 1)"}],{duration:280,easing:"ease-out",composite:"add"}))},940)];return()=>{for(const X of Z)clearTimeout(X)}},[u,r]),w.useEffect(()=>{if(!e)return;let Z=!0;return window.api.getDashboard(e).then(oe=>{var ce,he;if(!Z)return;const z=(ce=oe==null?void 0:oe.frictionByNode)==null?void 0:ce[0];if(!(z!=null&&z.nodeId))return;R.current=z.nodeId;const J=ji(),X=(he=J.nav)==null?void 0:he.getBoundingClientRect();if(X)for(const{island:re,container:ne}of J.sections.values()){const xe=re.ball(z.nodeId);if(!xe)continue;const ve=ne.getBoundingClientRect(),Le=ve.left-X.left+xe.body.position.x,Be=ve.top-X.top+xe.body.position.y;P.current={x:Le,y:Math.max(40,Be-92)},L.current=performance.now()+8e3,setTimeout(()=>{Z&&Ll()},1200);return}}).catch(()=>{}),()=>{Z=!1}},[e]),w.useEffect(()=>{const Z=oe=>{const z=oe.detail,J=R.current;z!=="mastery"||!J||!e||window.api.getDashboard(e).then(X=>{var he;((he=X==null?void 0:X.frictionByNode)==null?void 0:he.some(re=>re.nodeId===J))||(R.current=null,L.current=0,u1())}).catch(()=>{})};return window.addEventListener("companion-state-changed",Z),()=>window.removeEventListener("companion-state-changed",Z)},[e]),w.useEffect(()=>yo(Z=>{if(Z.kind!=="correct"&&Z.kind!=="unlock"||!Z.origin||Bi().state.examActive)return;const oe=document.elementFromPoint(Z.origin.x,Z.origin.y);if(!oe)return;const z=oe.closest('[data-testid="map-rail"]');j.current={x:Z.origin.x,y:Z.origin.y,until:performance.now()+3e3,pane:z?"rail":"chat"}}),[]),w.useEffect(()=>{const Z=z=>{const J=F.current;if(!J)return;const X=performance.now(),ce=Math.max(8,X-J.t);F.current={x:z.clientX,y:z.clientY,vx:(z.clientX-J.x)/ce*16.7,vy:(z.clientY-J.y)/ce*16.7,t:X}},oe=()=>{var ne,xe,ve,Le;const z=F.current;if(!z)return;F.current=null;const J=Math.hypot(z.vx,z.vy),X=g.current;if(X){const Be=(ne=ji().nav)==null?void 0:ne.getBoundingClientRect();Be&&ln.Body.setPosition(X.body,{x:Math.min(Be.width-24,Math.max(24,z.x-Be.left)),y:Math.min(Be.height-24,Math.max(24,z.y-Be.top))}),J>=2.5&&(ln.Body.setVelocity(X.body,{x:z.vx*.9,y:z.vy*.9}),X.throwDizzy(performance.now()))}const ce=ji(),he=((xe=ce.nav)==null?void 0:xe.getBoundingClientRect())??null;if(!(!!he&&he.width>40&&(ce.visible||Bi().state.importing))){const Be=((ve=document.querySelector("header.app-header"))==null?void 0:ve.getBoundingClientRect())??null;if(!!Be&&z.y>=Be.top&&z.y<=Be.bottom)E.current=null;else{const Oe=((Le=document.querySelector('[data-testid="notebook-panel"]'))==null?void 0:Le.getBoundingClientRect())??null,te=Oe&&z.x>=Oe.left&&z.x<=Oe.right&&z.y>=Oe.top&&z.y<=Oe.bottom?"notebook":"chat",Ie=((Be==null?void 0:Be.bottom)??0)+80;E.current={x:Math.min(Math.max(z.x,60),window.innerWidth-60),y:Math.min(Math.max(z.y,Ie),window.innerHeight-60),pane:te}}}Ml(!1,J)};return window.addEventListener("pointermove",Z,{passive:!0}),window.addEventListener("pointerup",oe,{passive:!0}),window.addEventListener("pointercancel",oe,{passive:!0}),()=>{window.removeEventListener("pointermove",Z),window.removeEventListener("pointerup",oe),window.removeEventListener("pointercancel",oe)}},[]),w.useEffect(()=>{if(!t.enabledLoaded||!t.enabled||t.petMode)return;const Z=p.current;if(!Z)return;let oe=0,z=performance.now(),J=0,X=0,ce=0,he=-1e9,re=null,ne=0,xe=0,ve=null,Le=[];const Be=Ee=>{var Vt,er,Pr,Dr,_n,tr,nr;oe=requestAnimationFrame(Be);const Oe=Math.min(50,Ee-z);z=Ee;const te=ji(),Ie=te.nav,be=(Ie==null?void 0:Ie.getBoundingClientRect())??null,ze=Bi().state,rt=!!F.current,Me=!!be&&be.width>40&&(te.visible||ze.importing);if(Me&&!k.current&&(E.current=null),k.current=Me,Ee-he>150){he=Ee,re=((Vt=document.querySelector('[data-testid="notebook-panel"]'))==null?void 0:Vt.getBoundingClientRect())??null;const ke=((er=document.querySelector("header.app-header"))==null?void 0:er.getBoundingClientRect())??null;ve=ke?{left:ke.left,right:ke.right,top:ke.top,bottom:ke.bottom}:null,ne=(ke==null?void 0:ke.bottom)??0,Le=ke?Array.from(document.querySelectorAll('header.app-header button, header.app-header [role="button"], header.app-header a, header.app-header input, header.app-header select')).map($e=>{const Qe=$e.getBoundingClientRect();return{left:Qe.left,right:Qe.right,top:Qe.top,bottom:Qe.bottom}}):[],xe=((Pr=document.querySelector('[data-testid="map-rail-topbar"]'))==null?void 0:Pr.getBoundingClientRect().bottom)??0}const Xe=re,G=()=>Math.max(ne,xe)-((be==null?void 0:be.top)??0),se=Math.floor(Ee/m1);if(B.current.bucket!==se&&(B.current={pane:l1(B.current.pane),bucket:se},Me&&ze.zone==="roam")){const ke=document.querySelector('[data-testid="map-review-badge"]'),$e=!!ke&&ke.className.includes("bg-review/20");let Qe=null;for(const{island:Ce,container:De}of te.sections.values()){const He=Ce.balls.find(ot=>!ot.body.isStatic);if(He){const ot=De.getBoundingClientRect();Qe={x:ot.left+He.body.position.x,y:ot.top+He.body.position.y};break}}const it=L.current>Ee?P.current:null,ct=p1(se,{hasReview:$e,hasNext:!!Qe,hasFriction:!!it});if(ct==="review"&&ke){const Ce=ke.getBoundingClientRect();q.current={kind:ct,until:Ee+ma,pos:{x:Ce.right+44,y:Ce.bottom+64},fired:!1},B.current.pane="rail"}else ct==="inspect"&&Qe?(q.current={kind:ct,until:Ee+ma,pos:{x:Qe.x+34,y:Qe.y-66},fired:!1},B.current.pane="rail"):ct==="friction"&&it&&(q.current={kind:ct,until:Ee+ma,pos:{x:it.x,y:it.y},fired:!1},B.current.pane="rail")}const pe=q.current&&Ee<q.current.until?q.current:null;q.current&&!pe&&(q.current=null);const de=g1();if(de&&de.seq!==_.current&&!ze.examActive){_.current=de.seq;let ke=de.x,$e=de.y;if((ke==null||$e==null)&&Me)for(const{island:Qe,container:it}of te.sections.values()){const ct=Qe.ball(de.nodeId);if(ct){const Ce=it.getBoundingClientRect();ke=Ce.left+ct.body.position.x,$e=Ce.top+ct.body.position.y;break}}Me&&ke!=null&&$e!=null?(A.current={nodeId:de.nodeId,x:ke,y:$e,until:Ee+2400,fired:!1,fly:!0},S({until:Ee+2400})):(A.current={nodeId:de.nodeId,x:0,y:0,until:Ee+1600,fired:!0,fly:!1},S({until:Ee+1600}))}const Ne=!!A.current&&Ee<A.current.until;if(A.current&&!Ne&&(A.current=null,S(null)),Ne&&A.current&&!A.current.fired){const ke=A.current;if(ke.fired=!0,ke.fly&&be)for(const{island:$e}of te.sections.values()){const Qe=$e.ball(ke.nodeId);if(Qe&&!Qe.body.isStatic){ln.Body.applyForce(Qe.body,Qe.body.position,{x:.0035,y:-.005});break}}}const _e=x1();if(_e&&_e.seq!==M.current&&!ze.examActive&&(M.current=_e.seq,Me&&be)){const ke=G();N.current={x:Math.min(be.width-44,Math.max(44,_e.x-be.left)),y:Math.min(be.height-44,Math.max(ke+52,_e.y-be.top)),until:Ee+3200}}const Te=!!N.current&&Ee<N.current.until;N.current&&!Te&&(N.current=null);const Pe=!!j.current&&Ee<j.current.until;j.current&&!Pe&&(j.current=null);const Ve=kC(),We=Ve?Ve.startContainer.parentElement??null:null;let ye=null,Ye=B.current.pane;const Fe=ze.examActive?(Dr=document.querySelector('[data-testid="exam-timer"]'))==null?void 0:Dr.getBoundingClientRect():void 0;if(Fe){g.current=null,F.current=null,Ye="chat";const ke={x:Math.min(Fe.right+64,window.innerWidth-70),y:Math.min(Fe.bottom+56,window.innerHeight-90)},$e=y.current??ke;ye=qt($e,ke,Oe,Nn),ce=Math.max(-.15,Math.min(.15,(ye.x-$e.x)*.008))}else if(rt){const ke=F.current;g.current=null,ye={x:ke.x,y:ke.y},ce=Math.max(-.5,Math.min(.5,ke.vx*.04)),Ye=c.current}else if(We&&Ve){const ke=We.closest('[data-testid="notebook-panel"], [data-testid="chat-stream"]'),$e=ke==null?void 0:ke.getBoundingClientRect(),Qe=Ve.getClientRects(),it=[];for(let Ke=0;Ke<Qe.length;Ke++){const dt=Qe[Ke];dt.width>1&&dt.height>1&&it.push({left:dt.left,right:dt.right,top:dt.top,bottom:dt.bottom})}const ct=it.length?it[it.length-1]:null,Ce=it.length?it[0]:null,De=Ve.getBoundingClientRect(),He=!!(ke!=null&&ke.closest('[data-testid="chat-stream"]')),ot=He?Lt.chat:Lt.notebook;if(Ye=He?"chat":"notebook",$e&&(ct||De.width>0)){const Ke=Pl({left:De.left,right:De.right,top:De.top,bottom:De.bottom},$e,ot,{first:Ce??void 0,last:ct??void 0},it),dt={dir:Ke.dir,pane:Ye};if((((_n=f.current)==null?void 0:_n.dir)!==dt.dir||((tr=f.current)==null?void 0:tr.pane)!==dt.pane)&&(f.current=dt,o(dt)),m.current!==Ke.occluding&&(m.current=Ke.occluding,d(Ke.occluding)),r)ye=Ke,ce=0;else{const st=y.current??{x:Ke.x,y:Ke.y};ye=qt(st,Ke,Oe,b1,110),ce=Ke.dir==="left"?-.07:Ke.dir==="right"?.07:0}}else{f.current!==null&&(f.current=null,o(null)),m.current&&(m.current=!1,d(!1));const Ke=$e?{x:$e.right-70,y:Math.max($e.top+96,ne+ot*.8)}:y1(window.innerHeight,ot,ne),dt=y.current??{x:Ke.x,y:Ke.y};ye=qt(dt,Ke,Oe,Nn),ce=Math.max(-.25,Math.min(.25,(ye.x-dt.x)*.01))}}else{f.current!==null&&(f.current=null,o(null)),m.current&&(m.current=!1,d(!1));const ke=ze.pose==="writing"?SC():null,$e=ze.zone,Qe=ke?ke.closest('[data-testid="notebook-panel"], [data-testid="chat-stream"]'):null,it=ke==null?void 0:ke.getBoundingClientRect(),ct=!!(Qe&&it&&it.width>0);if(ke&&ct){const Ce=Qe,De=Ce.getBoundingClientRect(),He=it,ot=!!Ce.closest('[data-testid="chat-stream"]');Ye=ot?"chat":"notebook";{const Ke=Pl(He,De,ot?Lt.chat:Lt.notebook);if(g.current=null,r)ye=Ke,ce=0;else{const dt=y.current??{x:Ke.x,y:Ke.y};ye=qt(dt,Ke,Oe,Nn),ce=.08}}}else if(Pe&&j.current&&j.current.pane!=="rail"){g.current=null;const Ce=j.current;Ye=Ce.pane==="notebook"?"notebook":"chat";const De=Ye==="notebook"?Lt.notebook:Lt.chat,He=c1({x:Ce.x,y:Ce.y},De,window.innerWidth,Math.max(ne,xe));if(r)ye=He,ce=0;else{const ot=y.current??{x:He.x,y:He.y};ye=qt(ot,He,Oe,Nn),ce=Math.max(-.2,Math.min(.2,(ye.x-ot.x)*.01))}}else if($e==="chat"&&Pd()){g.current=null,Ye="chat";const Ce=Pd();if(r)ye=Ce,ce=0;else{const De=Ol("chat",Ee),He=y.current??{x:Ce.x,y:Ce.y};ye=qt(He,{x:Ce.x+De.x,y:Ce.y+De.y},Oe,Nn),ce=Math.max(-.35,Math.min(.35,(ye.x-He.x)*.014))}}else if($e==="notebook"&&Xe){g.current=null,Ye="notebook";const Ce=d_()??{x:Xe.right-70,y:Xe.top+96};if(r)ye=Ce,ce=0;else{const De=Ol("notebook",Ee),He=y.current??{x:Ce.x,y:Ce.y};ye=qt(He,{x:Ce.x+De.x,y:Ce.y+De.y},Oe,Nn),ce=Math.max(-.3,Math.min(.3,(ye.x-He.x)*.012))}}else if(Me&&(Ne||Te||$e==="rail"||$e==="roam")){const Ce=be.width,De=be.height;if(Ye="rail",r)ye={x:be.left+Ce*.5,y:be.top+De*.5},ce=0;else{if((Ce!==J||De!==X)&&(J=Ce,X=De,(nr=g.current)==null||nr.resize(Ce,De),P.current=null),!g.current){g.current=c_({width:Ce,height:De});const bt=y.current;bt&&ln.Body.setPosition(g.current.body,{x:Math.min(Ce-30,Math.max(30,bt.x-be.left)),y:Math.min(De-30,Math.max(30,bt.y-be.top))})}const He=g.current,ot=[],Ke=[];for(const{island:bt,container:ir}of te.sections.values()){const Qt=ir.getBoundingClientRect();if(Qt.bottom<be.top-120||Qt.top>be.bottom+120)continue;const sr=Qt.left-be.left,Or=Qt.top-be.top;for(const Ct of bt.balls)ot.push({x:sr+Ct.body.position.x,y:Or+Ct.body.position.y,vx:Ct.body.velocity.x,vy:Ct.body.velocity.y,r:Bt,isStatic:Ct.body.isStatic,push:(In,Fi)=>ln.Body.applyForce(Ct.body,Ct.body.position,{x:In,y:Fi})}),Ke.push({x:sr+Ct.body.position.x,y:Or+Ct.body.position.y-Bt-20});for(const Ct of bt.links)for(const In of Ct.particles)Ke.push({x:sr+In.position.x,y:Or+In.position.y-8})}const dt=$e==="roam";let st=P.current,hn=!1;if(Te&&N.current)st={x:N.current.x+28,y:N.current.y-52},hn=!1;else if(Ne&&A.current&&A.current.fly)st={x:A.current.x-be.left+34,y:A.current.y-be.top-46},hn=!1;else if(Pe&&j.current&&j.current.pane==="rail")st={x:j.current.x-be.left+34,y:j.current.y-be.top-46},hn=!1;else if(pe)st={x:pe.pos.x-be.left,y:pe.pos.y-be.top},pe.fired||(pe.fired=!0,Ll());else if(dt){const bt=Dl(be,Lt.rail,Ee);st={x:bt.x-be.left,y:bt.y-be.top}}else{if(ze.mode==="veil"){const bt=l_({x:He.body.position.x,y:He.body.position.y},Ke,220);bt&&(st=bt,hn=!0)}(!st||Ee>L.current)&&(P.current=u_(Ce,De,ot,Math.floor(Ee/1e3)),L.current=Ee+3e3,st=P.current)}const ut=He.step(Oe,st,ze.mode==="veil"&&!dt?[]:ot,Ee,{settle:hn,ceilY:G()});if(ut&&!C.current&&d1(),C.current=ut||He.dizzyRemaining(Ee)>0,He.dizzyRemaining(Ee)===0){const bt=Ch(te.weather);if(bt.wind>=.3){const ir=He.body.mass;ln.Body.applyForce(He.body,He.body.position,{x:Ah(He.body.position.x,He.body.position.y,Ee)*bt.wind*Sh*ir*2.2,y:0})}(te.weather==="rain"||te.weather==="storm")&&ze.mode!=="veil"&&Ee>V.current&&(V.current=Ee+6e3+Math.random()*4e3,Z.classList.add("cp-shiver"),setTimeout(()=>Z.classList.remove("cp-shiver"),460))}const Di=He.body.position,rr={x:be.left+Di.x,y:be.top+Di.y},Oi=y.current??rr;ye=qt(Oi,rr,Oe,Nn),ce=He.body.angle+o_(He.body.velocity.x,He.body.velocity.y)}}else if(g.current=null,Me&&be){Ye="rail";const Ce=Dl(be,Lt.rail,Ee),De=y.current??{x:Ce.x,y:Ce.y};ye=qt(De,Ce,Oe,E1,140),ce=Math.max(-.25,Math.min(.25,(ye.x-De.x)*.01))}else if(E.current)if(Ye=E.current.pane,r)ye={x:E.current.x,y:E.current.y},ce=0;else{const Ce=f1(E.current,Ee),De=y.current??Ce;ye=qt(De,Ce,Oe,Fl),ce=Math.max(-.2,Math.min(.2,(ye.x-De.x)*.01))}else if(ve)if(Ye="titlebar",r)ye={x:(ve.left+ve.right)/2,y:(ve.top+ve.bottom)/2},ce=0;else{const Ce=h1(ve,Lt.titlebar,Ee),De=y.current??Ce;ye=qt(De,Ce,Oe,Fl),ce=0}}if(Ye==="titlebar"&&ye){const ke=Lt.titlebar/2,$e=ye.x-ke,Qe=ye.x+ke,it=ye.y-ke,ct=ye.y+ke,Ce=Le.some(De=>$e<De.right&&Qe>De.left&&it<De.bottom&&ct>De.top);Z.classList.toggle("cp-titlebar-dim",Ce)}else Z.classList.contains("cp-titlebar-dim")&&Z.classList.remove("cp-titlebar-dim");if(c.current!==Ye&&(c.current=Ye,l(Ye)),!ye){Z.style.opacity="0",y.current=null,v.current=null;return}y.current=ye;const Jn=Z.offsetWidth||Lt[Ye],Xt=Ye==="rail"?Math.max(ne,xe):ne;Ye!=="titlebar"&&ye.y<Xt+Jn/2+10&&(ye.y=Xt+Jn/2+10),Z.style.transform=`translate3d(${(ye.x-Jn/2).toFixed(1)}px, ${(ye.y-Jn/2).toFixed(1)}px, 0) rotate(${(ce*57.2958).toFixed(1)}deg)`;const Mr=v.current;if(Mr){const ke=ye.x-Mr.x,$e=ye.y-Mr.y,it=Math.hypot(ke,$e)/Math.max(1,Oe);if(Z.style.setProperty("--cp-speed",Math.min(1,it/.45).toFixed(3)),it>.02){const ct=(Math.atan2($e,ke)*57.2958+90+360)%360;Z.style.setProperty("--cp-thrust-deg",ct.toFixed(1)+"deg")}}v.current={x:ye.x,y:ye.y}};return oe=requestAnimationFrame(Be),()=>{var Ee;cancelAnimationFrame(oe),(Ee=g.current)==null||Ee.dispose(),g.current=null}},[t.enabledLoaded,t.enabled,t.petMode,r]);const $=w.useRef(0);if(w.useEffect(()=>{const Z=p.current;if(!Z||t.state.keySeq===$.current||t.state.examActive)return;$.current=t.state.keySeq,Z.classList.remove("cp-keypress"),Z.offsetWidth,Z.classList.add("cp-keypress");const oe=setTimeout(()=>Z.classList.remove("cp-keypress"),160);return()=>clearTimeout(oe)},[t.state.keySeq]),!t.enabledLoaded||!t.enabled||t.petMode)return null;const K=s?"flying":t.state.typing?"typing":I||(a==null?void 0:a.dir)==="left"?"point":(a==null?void 0:a.dir)==="right"?"pointr":(a==null?void 0:a.dir)==="up"?"pointu":(a==null?void 0:a.dir)==="down"?"pointd":t.state.pose,D=a?Lt[a.pane]:Lt[u];return x.jsx("div",{ref:p,className:`cp-creature fixed left-0 top-0 z-40 will-change-transform ${t.state.mode==="veil"?"cp-veil":""} ${h?"cp-occluding":""} ${t.state.grabbed?"cp-grabbed":""}`,"data-testid":"companion-creature","data-zone":t.state.zone==="roam"?u:t.state.zone,"data-mode":t.state.mode,children:x.jsx(a1,{form:t.form,expression:t.state.expression,screenKey:t.state.typing?t.state.lastKey??(t.state.lastKeyKind==="enter"?"→":t.state.lastKeyKind==="back"?"⌫":null):null,keyFlash:t.state.typing&&t.state.lastKey==null&&(t.state.lastKeyKind==="enter"||t.state.lastKeyKind==="back"),coreLit:t.state.correctStreak>=3,noteTick:Date.now()<t.state.noteTickUntil,pose:K,viseme:n.viseme,openScale:n.open,energyRatio:t.energyRatio,streakLit:t.streakLit,size:D,interactive:!0,ariaLabel:"companion",onPoke:o1,onGrab:(Z,oe)=>{F.current||(F.current={x:Z,y:oe,vx:0,vy:0,t:performance.now()},Ml(!0))},haloBadge:t.halo,testid:"companion-mascot",keySeq:t.state.keySeq,keySide:t.state.keySide})})}function h_(e,t){if(t.type==="text"){const n=e[e.length-1];return n&&n.type==="text"?[...e.slice(0,-1),{type:"text",text:n.text+t.text}]:[...e,{type:"text",text:t.text}]}if(t.type==="reasoning"){const n=e[e.length-1];return n&&n.type==="reasoning"?[...e.slice(0,-1),{type:"reasoning",text:n.text+t.text}]:[...e,{type:"reasoning",text:t.text}]}if(t.type==="tool-start")return[...e,{type:"tool-call",toolName:t.toolName,state:"input-available"}];if(t.type==="tool-result"){let n=-1;for(let r=e.length-1;r>=0;r--){const s=e[r];if(s.type==="tool-call"&&s.toolName===t.toolName&&s.state==="input-available"){n=r;break}}return n<0?e:e.map((r,s)=>s===n?{...r,state:"output-available",output:t.output}:r)}if(t.type==="tool-error"){let n=-1;for(let r=e.length-1;r>=0;r--){const s=e[r];if(s.type==="tool-call"&&s.toolName===t.toolName&&s.state==="input-available"){n=r;break}}return n<0?e:e.map((r,s)=>s===n?{...r,state:"output-error",error:t.error}:r)}return e}function $o(e){return{messages:[],streaming:!1,streamingMsgId:null,loaded:!1,focusNodeId:null,touched:e}}function Xu(e,t,n){if(e.has(t))return e;const r=new Map(e);return r.set(t,$o(n)),r}function Dd(e,t,n){const r=e.get(t);if(!r||r.touched===n)return e;const s=new Map(e);return s.set(t,{...r,touched:n}),s}function m_(e,t,n,r,s,i){const a=Xu(e,t,s),o=a.get(t);let u=o.streamingMsgId,l=o.messages;if(!(u&&l.some(h=>h.id===u))){const h=l[l.length-1];o.streaming&&h&&h.role==="assistant"?u=h.id:(u=r(),l=[...l,{id:u,role:"assistant",parts:[]}])}const f=new Map(a);return f.set(t,{...o,messages:l.map(h=>h.id===u?{...h,parts:h_(h.parts,n)}:h),streamingMsgId:u,focusNodeId:i??o.focusNodeId,touched:s}),f}function p_(e,t,n,r){const s=e.get(t);if(!s)return e;let i=-1,a=-1;for(let l=s.messages.length-1;l>=0&&(s.messages[l].role==="user"&&i===-1&&(i=l),s.messages[l].role==="assistant"&&a===-1&&(a=l),!(i!==-1&&a!==-1));l--);const o=s.messages.map((l,c)=>c===i&&(n!=null&&n.userMessageId)?{...l,id:n.userMessageId}:c===a&&(n!=null&&n.assistantMessageId)?{...l,id:n.assistantMessageId}:l),u=new Map(e);return u.set(t,{...s,messages:o,streaming:!1,streamingMsgId:null,touched:r}),u}function n0(e,t,n,r,s){const i=Xu(e,t,s),a=i.get(t),o=new Map(i);return o.set(t,{...a,messages:[...a.messages,{id:r(),role:"assistant",parts:[{type:"text",text:`⚠️ ${n}`}]}],streaming:!1,streamingMsgId:null,touched:s}),o}function g_(e,t,n,r){const s=Xu(e,t,r),i=s.get(t);if(i.streaming)return{buckets:e,accepted:!1};const a=new Map(s);return a.set(t,{...i,messages:[...i.messages,n],streaming:!0,streamingMsgId:null,touched:r}),{buckets:a,accepted:!0}}function x_(e,t,n,r,s){return n0(e,t,n,r,s)}function Od(e,t){if(e.size<=t)return e;const n=Array.from(e.entries()).filter(([,a])=>!a.streaming),r=e.size-n.length,s=Math.max(0,t-r);if(n.length<=s)return e;n.sort((a,o)=>a[1].touched-o[1].touched);const i=new Map(e);for(let a=0;a<n.length-s;a++)i.delete(n[a][0]);return i}let b_=0;const Qi=()=>`msg-v2-${++b_}`,Fd=8;function y_(e){if(!e)return null;try{const t=JSON.parse(e);return!Array.isArray(t)||t.length===0?null:t.every(r=>typeof r=="object"&&r!==null&&typeof r.type=="string")?t:null}catch{return null}}function E_(e,t){const[n,r]=w.useState(()=>new Map),s=w.useRef(n);s.current=n;const i=w.useRef(e??"");i.current=e??"",w.useEffect(()=>{if(!e)return;let g=!1;return(async()=>{const y=s.current.get(e);if(y&&(y.loaded||y.messages.length>0)){r(v=>Dd(v,e,Date.now()));return}try{const v=await le.threadGetMessages(e);if(g)return;r(T=>{const C=T.get(e);if(C&&(C.loaded||C.messages.length>0))return Dd(T,e,Date.now());const E=v.map(_=>{const A=y_(_.partsJson);return{id:_.id,role:_.role,parts:A??[{type:"text",text:_.content}],..._.displayText?{displayText:_.displayText}:{}}}),k=new Map(T);return k.set(e,{...C??$o(Date.now()),messages:E,loaded:!0,touched:Date.now()}),Od(k,Fd)})}catch{}})(),()=>{g=!0}},[e]),w.useEffect(()=>{const g=le.on("chat:part",(T,C,E)=>{const k=C??i.current;r(_=>Od(m_(_,k,T,Qi,Date.now(),E),Fd))}),y=le.on("chat:done",(T,C,E)=>{const k=E??i.current;r(_=>p_(_,k,C,Date.now()))}),v=le.on("chat:error",(T,C)=>{const E=C??i.current;r(k=>n0(k,E,T,Qi,Date.now()))});return()=>{g(),y(),v()}},[]);const a=w.useCallback(async(g,y,v,T)=>{var A;const C=y??e;if(!C||!g.trim()||(A=s.current.get(C))!=null&&A.streaming)return;const E=g.trim(),k={id:Qi(),role:"user",parts:[...(T??[]).map(I=>({type:"attachment",attachment:{kind:I.kind,name:I.name,mime:I.mime,size:I.size,...I.previewUrl?{previewUrl:I.previewUrl}:{}}})),{type:"text",text:E}],...v?{displayText:v}:{}},_=g_(s.current,C,k,Date.now());if(_.accepted){r(_.buckets);try{await le.agentChatThread(C,E,v,t??null,T)}catch(I){const S=I instanceof Error?I.message:String(I);r(M=>x_(M,C,S,Qi,Date.now()))}}},[e,t]),o=w.useCallback(async()=>{if(e){try{await le.abortAgentChatThread(e)}catch{}r(g=>{const y=g.get(e);if(!(y!=null&&y.streaming))return g;const v=new Map(g);return v.set(e,{...y,streaming:!1,streamingMsgId:null,touched:Date.now()}),v})}},[e]),u=w.useCallback(()=>{e&&r(g=>{const y=g.get(e);if(!y)return g;const v=new Map(g);return v.set(e,{...y,messages:[],streamingMsgId:null,loaded:!0,touched:Date.now()}),v})},[e]);w.useEffect(()=>{const g=y=>{const v=y.detail;if(typeof v!="string")return;const C={explain_simple:{msg:"用大白话给我讲讲这一节的核心概念",labelKey:"command.explain_simple"},quiz_3:{msg:"出 3 道练习题考考我",labelKey:"command.quiz_3"},compare_prev:{msg:"把这一节和上一节做个对比表",labelKey:"command.compare_prev"},concept_map:{msg:"画个概念图帮我理清这一节的知识结构",labelKey:"command.concept_map"},socratic:{msg:"切换到苏格拉底模式,用提问引导我思考",labelKey:"command.socratic"},exam_mode:{msg:"切换到考试冲刺模式,出有难度的题",labelKey:"command.exam_mode"}}[v];C&&a(C.msg,void 0,wu(C.labelKey))};return window.addEventListener("lookatstudy-command",g),()=>window.removeEventListener("lookatstudy-command",g)},[a]);const l=w.useCallback((g,y,v)=>{e&&r(T=>{const C=T.get(e);if(!C)return T;const E=new Map(T);return E.set(e,{...C,messages:C.messages.map(k=>{if(k.id!==g)return k;const _=[...k.parts],A=_[y];return A&&A.type==="tool-call"&&(_[y]={...A,output:{...typeof A.output=="object"&&A.output?A.output:{},status:v?"applied":"rejected"}}),{...k,parts:_}})}),E})},[e]),c=w.useCallback(g=>{e&&r(y=>{const v=y.get(e)??$o(Date.now()),T=new Map(y);return T.set(e,{...v,messages:g,loaded:!0,touched:Date.now()}),T})},[e]),f=e?n.get(e):void 0,h=w.useMemo(()=>(f==null?void 0:f.messages)??[],[f]),d=(f==null?void 0:f.streaming)??!1,m=w.useMemo(()=>Array.from(n.entries()).filter(([,g])=>g.streaming).map(([g])=>g),[n]),p=w.useMemo(()=>Array.from(n.values()).filter(g=>g.streaming&&g.focusNodeId).map(g=>g.focusNodeId).filter((g,y,v)=>v.indexOf(g)===y),[n]);return{messages:h,streaming:d,streamingThreadIds:m,streamingNodeIds:p,send:a,stop:o,clear:u,markProposalStatus:l,setMessagesForNode:c}}const Zi=(e,t=60)=>e.length>t?e.slice(0,t)+"…":e;function T_(e,t){return t("quiz.hook.label",{correct:e.correct,total:e.total})}function v_(e,t){const n=e.detail.map((s,i)=>s.correct?t("quiz.hook.lineOk",{n:i+1,prompt:Zi(s.prompt)}):t("quiz.hook.lineWrong",{n:i+1,prompt:Zi(s.prompt),chosen:Zi(s.chosen,30),answer:Zi(s.answerText,30)})),r=e.title?`《${e.title}》`:"";return t("quiz.hook.message",{title:r,correct:e.correct,total:e.total})+(n.length?`
453
453
  `+n.join(`
@@ -459,4 +459,4 @@ ${f}`:f)},[f]),w.useEffect(()=>{if(!e){k(null);return}let te=!1;(async()=>{try{c
459
459
  ${E}px !important;
460
460
  ${k}px !important;
461
461
  }
462
- `),()=>{var I;(I=o.current)==null||I.removeAttribute("data-motion-pop-id"),A.contains(_)&&A.removeChild(_)}},[t]),x.jsx(y6,{isPresent:t,childRef:o,sizeRef:u,pop:i,children:i===!1?e:w.cloneElement(e,{ref:f})})}const T6=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a,anchorX:o,anchorY:u,root:l})=>{const c=Zu(v6),f=w.useId(),h=w.useRef(n),d=w.useRef(r);Ns(()=>{h.current=n,d.current=r});let m=!0,p=w.useMemo(()=>(m=!1,{id:f,initial:t,isPresent:n,custom:s,onExitComplete:g=>{c.set(g,!0);for(const y of c.values())if(!y)return;r&&r()},register:g=>(c.set(g,!1),()=>{var y;c.delete(g),!h.current&&!c.size&&((y=d.current)==null||y.call(d))})}),[n,c,r]);return i&&m&&(p={...p}),w.useMemo(()=>{c.forEach((g,y)=>c.set(y,!1))},[n]),w.useEffect(()=>{!n&&!c.size&&r&&r()},[n]),e=x.jsx(E6,{pop:a==="popLayout",isPresent:n,anchorX:o,anchorY:u,root:l,children:e}),x.jsx(ia.Provider,{value:p,children:e})};function v6(){return new Map}function _g(e=!0){const t=w.useContext(ia);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=w.useId();w.useEffect(()=>{if(e)return s(i)},[e]);const a=w.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const ts=e=>e.key||"";function Uf(e){const t=[];return w.Children.forEach(e,n=>{w.isValidElement(n)&&t.push(n)}),t}const k6=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1,anchorX:o="left",anchorY:u="top",root:l})=>{const[c,f]=_g(a),h=w.useMemo(()=>Uf(e),[e]),d=a&&!c?[]:h.map(ts),m=w.useRef(!0),p=w.useRef(h),g=Zu(()=>new Map),y=w.useRef(new Set),[v,T]=w.useState(h),[C,E]=w.useState(h);Ns(()=>{a&&!c&&!C.length&&(f==null||f())},[c,a,C.length,f]),Ns(()=>{m.current=!1,p.current=h;for(let A=0;A<C.length;A++){const I=ts(C[A]);d.includes(I)?(g.delete(I),y.current.delete(I)):g.get(I)!==!0&&g.set(I,!1)}},[C,d.length,d.join("-")]);const k=[];if(h!==v){let A=[...h];for(let I=0;I<C.length;I++){const S=C[I],M=ts(S);d.includes(M)||(A.splice(I,0,S),k.push(S))}return i==="wait"&&k.length&&(A=k),E(Uf(A)),T(h),null}const{forceRender:_}=w.useContext(Qu);return x.jsx(x.Fragment,{children:C.map(A=>{const I=ts(A),S=a&&!c?!1:h===C||d.includes(I),M=()=>{if(y.current.has(I))return;if(g.has(I))y.current.add(I),g.set(I,!0);else return;let N=!0;g.forEach(j=>{j||(N=!1)}),N&&(_==null||_(),E(p.current),a&&(f==null||f()),r&&r())};return x.jsx(T6,{isPresent:S,initial:!m.current||n?void 0:!1,custom:t,presenceAffectsLayout:s,mode:i,root:l,onExitComplete:S?void 0:M,anchorX:o,anchorY:u,children:A},I)})})},Ig=w.createContext({strict:!1}),zf={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Vf=!1;function w6(){if(Vf)return;const e={};for(const t in zf)e[t]={isEnabled:n=>zf[t].some(r=>!!n[r])};ig(e),Vf=!0}function Ng(){return w6(),u5()}function S6(e){const t=Ng();for(const n in e)t[n]={...t[n],...e[n]};ig(t)}const la=w.createContext({});function A6(e,t){if(ua(e)){const{initial:n,animate:r}=e;return{initial:n===!1||vi(n)?n:void 0,animate:vi(r)?r:void 0}}return e.inherit!==!1?t:{}}function C6(e){const{initial:t,animate:n}=A6(e,w.useContext(la));return w.useMemo(()=>({initial:t,animate:n}),[qf(t),qf(n)])}function qf(e){return Array.isArray(e)?e.join(" "):e}const kl=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Rg(e,t,n){for(const r in t)!Et(t[r])&&!dg(r,n)&&(e[r]=t[r])}function _6({transformTemplate:e},t){return w.useMemo(()=>{const n=kl();return El(n,t,e),Object.assign({},n.vars,n.style)},[t])}function I6(e,t){const n=e.style||{},r={};return Rg(r,n,e),Object.assign(r,_6(e,t)),r}function N6(e,t){const n={},r=I6(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const Lg=()=>({...kl(),attrs:{}});function R6(e,t,n,r){const s=w.useMemo(()=>{const i=Lg();return hg(i,t,pg(r),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Rg(i,e.style,e),s.style={...i,...s.style}}return s}const L6=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Hs(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||L6.has(e)}function M6(e,t){return e.startsWith("on")?!Hs(e):(t==null?void 0:t(e))??!Hs(e)}function P6(e,t,n,r){const s={};for(const i in e)i==="values"&&typeof e.values=="object"||Et(e[i])||(M6(i,r)||n===!0&&Hs(i)||!t&&!Hs(i)||e.draggable&&i.startsWith("onDrag"))&&(s[i]=e[i]);return s}const D6=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function wl(e){return typeof e!="string"||e.includes("-")?!1:!!(D6.indexOf(e)>-1||/[A-Z]/u.test(e))}function O6(e,t,n,{latestValues:r},s,i=!1,a,o){const l=(a??wl(e)?R6:N6)(t,r,s,e),c=P6(t,typeof e=="string",i,o),f=e!==w.Fragment?{...c,...l,ref:n}:{},{children:h}=t,d=w.useMemo(()=>Et(h)?h.get():h,[h]);return w.createElement(e,{...f,children:d})}function F6({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,s){return{latestValues:B6(n,r,s,e),renderState:t()}}function B6(e,t,n,r){const s={},i=r(e,{});for(const h in i)s[h]=bs(i[h]);let{initial:a,animate:o}=e;const u=ua(e),l=ng(e);t&&l&&!u&&e.inherit!==!1&&(a===void 0&&(a=t.initial),o===void 0&&(o=t.animate));let c=n?n.initial===!1:!1;c=c||a===!1;const f=c?o:a;if(f&&typeof f!="boolean"&&!oa(f)){const h=Array.isArray(f)?f:[f];for(let d=0;d<h.length;d++){const m=fl(e,h[d]);if(m){const{transitionEnd:p,transition:g,...y}=m;for(const v in y){let T=y[v];if(Array.isArray(T)){const C=c?T.length-1:0;T=T[C]}T!==null&&(s[v]=T)}for(const v in p)s[v]=p[v]}}}return s}const Mg=e=>(t,n)=>{const r=w.useContext(la),s=w.useContext(ia),i=()=>F6(e,t,r,s);return n?i():Zu(i)},j6=Mg({scrapeMotionValuesFromProps:Tl,createRenderState:kl}),H6=Mg({scrapeMotionValuesFromProps:gg,createRenderState:Lg}),U6=Symbol.for("motionComponentSymbol");function z6(e,t,n){const r=w.useRef(n);w.useInsertionEffect(()=>{r.current=n});const s=w.useRef(null);return w.useCallback(i=>{var o;i&&((o=e.onMount)==null||o.call(e,i)),t&&(i?t.mount(i):t.unmount());const a=r.current;if(typeof a=="function")if(i){const u=a(i);typeof u=="function"&&(s.current=u)}else s.current?(s.current(),s.current=null):a(i);else a&&(a.current=i)},[t])}const Pg=w.createContext({});function hr(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function V6(e,t,n,r,s,i){var T,C;const{visualElement:a}=w.useContext(la),o=w.useContext(Ig),u=w.useContext(ia),l=w.useContext(vl),c=l.reducedMotion,f=l.skipAnimations,h=w.useRef(null),d=w.useRef(!1);r=r||o.renderer,!h.current&&r&&(h.current=r(e,{visualState:t,parent:a,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:c,skipAnimations:f,isSVG:i}),d.current&&h.current&&(h.current.manuallyAnimateOnMount=!0));const m=h.current,p=w.useContext(Pg);m&&!m.projection&&s&&(m.type==="html"||m.type==="svg")&&q6(h.current,n,s,p);const g=w.useRef(!1);w.useInsertionEffect(()=>{m&&g.current&&m.update(n,u)});const y=n[q0],v=w.useRef(!!y&&typeof window<"u"&&!((T=window.MotionHandoffIsComplete)!=null&&T.call(window,y))&&((C=window.MotionHasOptimisedAnimation)==null?void 0:C.call(window,y)));return Ns(()=>{d.current=!0,m&&(g.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),v.current&&m.animationState&&m.animationState.animateChanges())}),w.useEffect(()=>{m&&(!v.current&&m.animationState&&m.animationState.animateChanges(),v.current&&(queueMicrotask(()=>{var E;(E=window.MotionHandoffMarkAsComplete)==null||E.call(window,y)}),v.current=!1),m.enteringChildren=void 0)}),m}function q6(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:o,layoutScroll:u,layoutRoot:l,layoutAnchor:c,layoutCrossfade:f}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Dg(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||o&&hr(o),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,crossfade:f,layoutScroll:u,layoutRoot:l,layoutAnchor:c})}function Dg(e){if(e)return e.options.allowProjection!==!1?e.projection:Dg(e.parent)}function ho(e,{forwardMotionProps:t=!1,type:n}={},r,s){r&&S6(r);const i=n?n==="svg":wl(e),a=i?H6:j6;function o(l,c){let f;const h={...w.useContext(vl),...l,layoutId:$6(l)},{isStatic:d,isValidProp:m}=h,p=C6(l),g=a(l,d);if(!d&&typeof window<"u"){W6();const y=Y6(h);f=y.MeasureLayout,p.visualElement=V6(e,g,h,s,y.ProjectionNode,i)}return x.jsxs(la.Provider,{value:p,children:[f&&p.visualElement?x.jsx(f,{visualElement:p.visualElement,...h}):null,O6(e,l,z6(g,p.visualElement,c),g,d,t,i,m)]})}o.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const u=w.forwardRef(o);return u[U6]=e,u}function $6({layoutId:e}){const t=w.useContext(Qu).id;return t&&e!==void 0?t+"-"+e:e}function W6(e,t){w.useContext(Ig).strict}function Y6(e){const t=Ng(),{drag:n,layout:r}=t;if(!n&&!r)return{};const s={...n,...r};return{MeasureLayout:n!=null&&n.isEnabled(e)||r!=null&&r.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}function G6(e,t){if(typeof Proxy>"u")return ho;const n=new Map,r=(i,a)=>ho(i,a,e,t),s=(i,a)=>r(i,a);return new Proxy(s,{get:(i,a)=>a==="create"?r:(n.has(a)||n.set(a,ho(a,void 0,e,t)),n.get(a))})}const K6=(e,t)=>t.isSVG??wl(e)?new w5(t):new y5(t,{allowProjection:e!==w.Fragment});class X6 extends Cn{constructor(t){super(t),t.animationState||(t.animationState=I5(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();oa(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let Q6=0;class Z6 extends Cn{constructor(){super(...arguments),this.id=Q6++,this.isExitComplete=!1}update(){var i;if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;if(t&&r===!1){if(this.isExitComplete){const{initial:a,custom:o}=this.node.getProps();if(typeof a=="string"||typeof a=="object"&&a!==null&&!Array.isArray(a)){const u=Gn(this.node,a,o);if(u){const{transition:l,transitionEnd:c,...f}=u;for(const h in f)(i=this.node.getValue(h))==null||i.jump(f[h])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const J6={animation:{Feature:X6},exit:{Feature:Z6}};function Pi(e){return{point:{x:e.pageX,y:e.pageY}}}const eR=e=>t=>gl(t)&&e(t,Pi(t));function fi(e,t,n,r){return ki(e,t,eR(n),r)}const Og=({current:e})=>e?e.ownerDocument.defaultView:null,$f=(e,t)=>Math.abs(e-t);function tR(e,t){const n=$f(e.x,t.x),r=$f(e.y,t.y);return Math.sqrt(n**2+r**2)}const Wf=new Set(["auto","scroll"]);class Fg{constructor(t,n,{transformPagePoint:r,contextWindow:s=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=m=>{this.handleScroll(m.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=ns(this.lastRawMoveEventInfo,this.transformPagePoint));const m=mo(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,g=tR(m.offset,{x:0,y:0})>=this.distanceThreshold;if(!p&&!g)return;const{point:y}=m,{timestamp:v}=yt;this.history.push({...y,timestamp:v});const{onStart:T,onMove:C}=this.handlers;p||(T&&T(this.lastMoveEvent,m),this.startEvent=this.lastMoveEvent),C&&C(this.lastMoveEvent,m)},this.handlePointerMove=(m,p)=>{this.lastMoveEvent=m,this.lastRawMoveEventInfo=p,this.lastMoveEventInfo=ns(p,this.transformPagePoint),tt.update(this.updatePoint,!0)},this.handlePointerUp=(m,p)=>{this.end();const{onEnd:g,onSessionEnd:y,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=mo(m.type==="pointercancel"?this.lastMoveEventInfo:ns(p,this.transformPagePoint),this.history);this.startEvent&&g&&g(m,T),y&&y(m,T)},!gl(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=a,this.contextWindow=s||window;const u=Pi(t),l=ns(u,this.transformPagePoint),{point:c}=l,{timestamp:f}=yt;this.history=[{...c,timestamp:f}];const{onSessionStart:h}=n;h&&h(t,mo(l,this.history));const d={passive:!0,capture:!0};this.removeListeners=Ri(fi(this.contextWindow,"pointermove",this.handlePointerMove,d),fi(this.contextWindow,"pointerup",this.handlePointerUp,d),fi(this.contextWindow,"pointercancel",this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(t){let n=t.parentElement;for(;n;){const r=getComputedStyle(n);(Wf.has(r.overflowX)||Wf.has(r.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const r=t===window,s=r?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},i={x:s.x-n.x,y:s.y-n.y};i.x===0&&i.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(t,s),tt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),wn(this.updatePoint)}}function ns(e,t){return t?{point:t(e.point)}:e}function Yf(e,t){return{x:e.x-t.x,y:e.y-t.y}}function mo({point:e},t){return{point:e,delta:Yf(e,Bg(t)),offset:Yf(e,nR(t)),velocity:rR(t,.1)}}function nR(e){return e[0]}function Bg(e){return e[e.length-1]}function rR(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Bg(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>Dt(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&s.timestamp-r.timestamp>Dt(t)*2&&(r=e[1]);const i=Ut(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function iR(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?et(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?et(n,e,r.max):Math.min(e,n)),e}function Gf(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function sR(e,{top:t,left:n,bottom:r,right:s}){return{x:Gf(e.x,n,s),y:Gf(e.y,t,r)}}function Kf(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function aR(e,t){return{x:Kf(e.x,t.x),y:Kf(e.y,t.y)}}function oR(e,t){let n=.5;const r=At(e),s=At(t);return s>r?n=Ei(t.min,t.max-r,e.min):r>s&&(n=Ei(e.min,e.max-s,t.min)),rn(0,1,n)}function uR(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const pu=.35;function lR(e=pu){return e===!1?e=0:e===!0&&(e=pu),{x:Xf(e,"left","right"),y:Xf(e,"top","bottom")}}function Xf(e,t,n){return{min:Qf(e,t),max:Qf(e,n)}}function Qf(e,t){return typeof e=="number"?e:e[t]||0}const cR=new WeakMap;class dR{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=pt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const i=f=>{n&&this.snapToCursor(Pi(f).point),this.stopAnimation()},a=(f,h)=>{const{drag:d,dragPropagation:m,onDragStart:p}=this.getProps();if(d&&!m&&(this.openDragLock&&this.openDragLock(),this.openDragLock=BN(d),!this.openDragLock))return;this.latestPointerEvent=f,this.latestPanInfo=h,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Jt(y=>{let v=this.getAxisMotionValue(y).get()||0;if(nn.test(v)){const{projection:T}=this.visualElement;if(T&&T.layout){const C=T.layout.layoutBox[y];C&&(v=At(C)*(parseFloat(v)/100))}}this.originPoint[y]=v}),p&&tt.update(()=>p(f,h),!1,!0),su(this.visualElement,"transform");const{animationState:g}=this.visualElement;g&&g.setActive("whileDrag",!0)},o=(f,h)=>{this.latestPointerEvent=f,this.latestPanInfo=h;const{dragPropagation:d,dragDirectionLock:m,onDirectionLock:p,onDrag:g}=this.getProps();if(!d&&!this.openDragLock)return;const{offset:y}=h;if(m&&this.currentDirection===null){this.currentDirection=hR(y),this.currentDirection!==null&&p&&p(this.currentDirection);return}this.updateAxis("x",h.point,y),this.updateAxis("y",h.point,y),this.visualElement.render(),g&&tt.update(()=>g(f,h),!1,!0)},u=(f,h)=>{this.latestPointerEvent=f,this.latestPanInfo=h,this.stop(f,h),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>{const{dragSnapToOrigin:f}=this.getProps();(f||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:c}=this.getProps();this.panSession=new Fg(t,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:u,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:r,contextWindow:Og(this.visualElement),element:this.visualElement.current})}stop(t,n){const r=t||this.latestPointerEvent,s=n||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!s||!r)return;const{velocity:a}=s;this.startAnimation(a);const{onDragEnd:o}=this.getProps();o&&tt.postRender(()=>o(r,s))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!rs(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=iR(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var i;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(i=this.visualElement.projection)==null?void 0:i.layout,s=this.constraints;t&&hr(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=sR(r.layoutBox,t):this.constraints=!1,this.elastic=lR(n),s!==this.constraints&&!hr(t)&&r&&this.constraints&&!this.hasMutatedConstraints&&Jt(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=uR(r.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!hr(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;s.root&&(s.root.scroll=void 0,s.root.updateScroll());const i=h5(r,s.root,this.visualElement.getTransformPagePoint());let a=aR(s.layout.layoutBox,i);if(n){const o=n(c5(a));this.hasMutatedConstraints=!!o,o&&(a=ag(o))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),u=this.constraints||{},l=Jt(c=>{if(!rs(c,n,this.currentDirection))return;let f=u&&u[c]||{};(a===!0||a===c)&&(f={min:0,max:0});const h=s?200:1e6,d=s?40:1e7,m={type:"inertia",velocity:r?t[c]:0,bounceStiffness:h,bounceDamping:d,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(c,m)});return Promise.all(l).then(o)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return su(this.visualElement,t),r.start(dl(t,r,0,n,this.visualElement,!1))}stopAnimation(){Jt(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps()[n];return s||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){Jt(n=>{const{drag:r}=this.getProps();if(!rs(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:o}=s.layout.layoutBox[n],u=i.get()||0;i.set(t[n]-et(a,o,.5)+u)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!hr(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};Jt(a=>{const o=this.getAxisMotionValue(a);if(o&&this.constraints!==!1){const u=o.get();s[a]=oR({min:u,max:u},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.constraints=!1,this.resolveConstraints(),Jt(a=>{if(!rs(a,t,null))return;const o=this.getAxisMotionValue(a),{min:u,max:l}=this.constraints[a];o.set(et(u,l,s[a]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;cR.set(this.visualElement,this);const t=this.visualElement.current,n=fi(t,"pointerdown",l=>{const{drag:c,dragListener:f=!0}=this.getProps(),h=l.target,d=h!==t&&qN(h);c&&f&&!d&&this.start(l)});let r;const s=()=>{const{dragConstraints:l}=this.getProps();hr(l)&&l.current&&(this.constraints=this.resolveRefConstraints(),r||(r=fR(t,l.current,()=>this.scalePositionWithinConstraints())))},{projection:i}=this.visualElement,a=i.addEventListener("measure",s);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),tt.read(s);const o=ki(window,"resize",()=>this.scalePositionWithinConstraints()),u=i.addEventListener("didUpdate",(({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(Jt(f=>{const h=this.getAxisMotionValue(f);h&&(this.originPoint[f]+=l[f].translate,h.set(h.get()+l[f].translate))}),this.visualElement.render())}));return()=>{o(),n(),a(),u&&u(),r&&r()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=pu,dragMomentum:o=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:o}}}function Zf(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function fR(e,t,n){const r=sf(e,Zf(n)),s=sf(t,Zf(n));return()=>{r(),s()}}function rs(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function hR(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class mR extends Cn{constructor(t){super(t),this.removeGroupControls=zt,this.removeListeners=zt,this.controls=new dR(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||zt}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const po=e=>(t,n)=>{e&&tt.update(()=>e(t,n),!1,!0)};class pR extends Cn{constructor(){super(...arguments),this.removePointerDownListener=zt}onPointerDown(t){this.session=new Fg(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Og(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:po(t),onStart:po(n),onMove:po(r),onEnd:(i,a)=>{delete this.session,s&&tt.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=fi(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let go=!1;class gR extends w.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),go&&i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),ys.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,{projection:a}=r;return a&&(a.isPresent=i,t.layoutDependency!==n&&a.setOptions({...a.options,layoutDependency:n}),go=!0,s||t.layoutDependency!==n||n===void 0||t.isPresent!==i?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||tt.postRender(()=>{const o=a.getStack();(!o||!o.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:r}=t;r&&(r.options.layoutAnchor=n,r.root.didUpdate(),pl.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;go=!0,s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function jg(e){const[t,n]=_g(),r=w.useContext(Qu);return x.jsx(gR,{...e,layoutGroup:r,switchLayoutGroup:w.useContext(Pg),isPresent:t,safeToRemove:n})}const xR={pan:{Feature:pR},drag:{Feature:mR,ProjectionNode:Cg,MeasureLayout:jg}};function Jf(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&tt.postRender(()=>i(t,Pi(t)))}class bR extends Cn{mount(){const{current:t}=this.node;t&&(this.unmount=HN(t,(n,r)=>(Jf(this.node,r,"Start"),s=>Jf(this.node,s,"End"))))}unmount(){}}class yR extends Cn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Ri(ki(this.node.current,"focus",()=>this.onFocus()),ki(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function eh(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&tt.postRender(()=>i(t,Pi(t)))}class ER extends Cn{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:r}=this.node.props;this.unmount=WN(t,(s,i)=>(eh(this.node,i,"Start"),(a,{success:o})=>eh(this.node,a,o?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:(r==null?void 0:r.tap)===!1})}unmount(){}}const gu=new WeakMap,xo=new WeakMap,TR=e=>{const t=gu.get(e.target);t&&t(e)},vR=e=>{e.forEach(TR)};function kR({root:e,...t}){const n=e||document;xo.has(n)||xo.set(n,{});const r=xo.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(vR,{root:e,...t})),r[s]}function wR(e,t,n){const r=kR(t);return gu.set(e,n),r.observe(e),()=>{gu.delete(e),r.unobserve(e)}}const SR={some:0,all:1};class AR extends Cn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var u;(u=this.stopObserver)==null||u.call(this);const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:SR[s]},o=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,i&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:f,onViewportLeave:h}=this.node.getProps(),d=c?f:h;d&&d(l)};this.stopObserver=wR(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(CR(t,n))&&this.startObserver()}unmount(){var t;(t=this.stopObserver)==null||t.call(this),this.hasEnteredView=!1,this.isInView=!1}}function CR({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const _R={inView:{Feature:AR},tap:{Feature:ER},focus:{Feature:yR},hover:{Feature:bR}},IR={layout:{ProjectionNode:Cg,MeasureLayout:jg}},NR={...J6,..._R,...xR,...IR},RR=G6(NR,K6),LR=RR;function MR(e){switch(e){case"correct":return{Icon:Tu,color:"var(--brand)"};case"wrong":return{Icon:ah,color:"var(--warning)"};case"mastery":case"level-up":return{Icon:H1,color:"var(--gold)"};case"unlock":return{Icon:Ul,color:"var(--brand)"};case"streak":return{Icon:uh,color:"var(--review)"};case"energy-full":return{Icon:To,color:"var(--brand)"};case"exam-pass":return{Icon:L1,color:"var(--exam)"};case"lesson-complete":return{Icon:px,color:"var(--gold)"};default:return{Icon:Ul,color:"var(--brand)"}}}function PR(){const e=bu(),t=w.useRef(null),n=w.useRef([]),r=w.useRef(0),[s,i]=w.useState(null);return w.useEffect(()=>{if(e)return;const a=t.current;if(!a)return;const o=a.getContext("2d");if(!o)return;const u=()=>{const h=Math.min(window.devicePixelRatio||1,2);a.width=window.innerWidth*h,a.height=window.innerHeight*h,a.style.width=window.innerWidth+"px",a.style.height=window.innerHeight+"px",o.setTransform(h,0,0,h,0,0)};u(),window.addEventListener("resize",u);const l=()=>{o.clearRect(0,0,window.innerWidth,window.innerHeight);const h=n.current;for(let d=h.length-1;d>=0;d--){const m=h[d];if(m.x+=m.vx,m.y+=m.vy,m.vy+=.25,m.vx*=.99,m.rot+=m.vr,m.life--,m.life<=0){h.splice(d,1);continue}const p=Math.min(1,m.life/m.maxLife);o.save(),o.globalAlpha=p,o.translate(m.x,m.y),o.rotate(m.rot),o.fillStyle=m.color,m.shape==="circle"?(o.beginPath(),o.arc(0,0,m.size,0,Math.PI*2),o.fill()):o.fillRect(-m.size/2,-m.size/2,m.size,m.size*.6),o.restore()}r.current=h.length>0?requestAnimationFrame(l):0},f=yo(h=>{var y,v;const d=T1(h.kind),m=Math.round(d.particles*(h.intensity??1)),p=((y=h.origin)==null?void 0:y.x)??window.innerWidth/2,g=((v=h.origin)==null?void 0:v.y)??window.innerHeight/2;for(let T=0;T<m;T++){const C=Math.PI*2*T/m+Math.random()*.3,E=3+Math.random()*6,k=d.durationMs/16*(.7+Math.random()*.5);n.current.push({x:p,y:g,vx:Math.cos(C)*E,vy:Math.sin(C)*E-2,life:k,maxLife:k,color:d.colors[T%d.colors.length],size:4+Math.random()*5,rot:Math.random()*Math.PI,vr:(Math.random()-.5)*.3,shape:Math.random()<.5?"rect":"circle"})}r.current===0&&(r.current=requestAnimationFrame(l))});return()=>{f(),window.removeEventListener("resize",u),r.current&&cancelAnimationFrame(r.current),r.current=0,n.current=[]}},[e]),w.useEffect(()=>{if(!e)return;let a=0;return yo(u=>{const l=++a;i({kind:u.kind,id:l}),setTimeout(()=>{l===a&&i(null)},600)})},[e]),e?x.jsx(k6,{children:s&&(()=>{const{Icon:a,color:o}=MR(s.kind);return x.jsx(LR.div,{className:"fixed inset-0 pointer-events-none z-[60] flex items-center justify-center","aria-hidden":"true",initial:{opacity:0},animate:{opacity:.45},exit:{opacity:0},transition:{duration:.2},children:x.jsx(a,{className:"w-24 h-24",color:o,strokeWidth:1.5})},s.id)})()}):x.jsx("canvas",{ref:t,className:"fixed inset-0 pointer-events-none z-[60]","aria-hidden":"true"})}const DR=w.lazy(()=>Se(()=>import("./SettingsView-DpSiGIUo.js"),__vite__mapDeps([34,1,2]),import.meta.url).then(e=>({default:e.SettingsView}))),OR=w.lazy(()=>Se(()=>import("./ExamView-DcD9-XhK.js"),__vite__mapDeps([35,1,2,31,30]),import.meta.url).then(e=>({default:e.ExamView}))),FR=w.lazy(()=>Se(()=>import("./CommandPalette-xoHRtFTt.js"),__vite__mapDeps([36,1,2]),import.meta.url).then(e=>({default:e.CommandPalette}))),th=["direct","guide","practice"];function BR(){const e=Ge(),[t,n]=w.useState([]),[r,s]=w.useState([]),[i,a]=w.useState({}),[o,u]=w.useState(null),[l,c]=w.useState(null),[f,h]=w.useState(null),[d,m]=w.useState(null),p=w.useCallback(W=>{m(W instanceof Error?W.message:String(W)),console.error(W)},[]),[g,y]=w.useState([]),[v,T]=w.useState(null),[C,E]=w.useState([]),[k,_]=w.useState(null),[A,I]=w.useState("map"),[S,M]=w.useState(null),[N,j]=w.useState(new Set),[P,L]=w.useState(null),F=w.useRef({active:!1,terminate:null}),[V,B]=w.useState({open:!1,pendingAction:null}),q=w.useRef(null),[R,$]=w.useState(null),[K,D]=w.useState(!1),[Z,oe]=w.useState(!0),[z,J]=w.useState(!0),X=M_(),[ce,he]=w.useState("notebook"),[re,ne]=w.useState("chat"),xe=w.useRef(re);xe.current=re;const ve=w.useRef(X);w.useEffect(()=>{ve.current!==X&&(X===1?(oe(!0),J(!0)):X===2&&ve.current===3&&he(__(xe.current)),ve.current=X)},[X]);const Le=X===3?re==="rail":X===2?ce==="rail":Z,Be=X===3?re==="notebook":X===2?ce==="notebook":z,Ee=X!==3||re==="chat",Oe=()=>{X===1?oe(W=>!W):X===2?he(W=>W==="rail"?"notebook":"rail"):ne(W=>W==="rail"?"chat":"rail")},te=()=>{X===1?J(W=>!W):X===2?he(W=>W==="notebook"?"rail":"notebook"):ne(W=>W==="notebook"?"chat":"notebook")},Ie=w.useRef(null),be=W=>{var fe,we;if(X!==3)return;const ee=W.touches[0];Ie.current={x:ee.clientX,y:ee.clientY,multi:W.touches.length>1,noswipe:!!((we=(fe=W.target).closest)!=null&&we.call(fe,"[data-noswipe]"))}},ze=W=>{const ee=Ie.current;if(Ie.current=null,!ee||ee.multi||ee.noswipe||X!==3)return;const fe=W.changedTouches[0],we=I_(xe.current,fe.clientX-ee.x,fe.clientY-ee.y);we&&ne(we)},[rt,Me]=w.useState(!1),[Xe,G]=w.useState(null),[se,pe]=w.useState([]),de=k_(f,P),Ne=vh(),_e=E_(de.activeId,Ne);w.useEffect(()=>{v1(_e.streaming)},[_e.streaming]);const[Te,Pe]=w.useState(""),Ve=w.useCallback(W=>{Pe(W)},[]),We=w.useCallback((W,ee,fe)=>{if(W.type==="content"){if($("content"),fe){const we=Ze=>{document.querySelector(`mark[data-note-id="${fe}"]`)?window.dispatchEvent(new CustomEvent("lookatstudy-jump-to-note",{detail:fe})):Ze>0&&setTimeout(()=>we(Ze-1),150)};setTimeout(()=>we(10),100)}}else if(W.threadId!==de.activeId&&de.setActiveId(W.threadId),fe){const we=Ze=>{document.querySelector(`mark[data-note-id="${fe}"]`)?window.dispatchEvent(new CustomEvent("lookatstudy-jump-to-chat-note",{detail:fe})):Ze>0&&setTimeout(()=>we(Ze-1),150)};setTimeout(()=>we(10),120)}},[de]),[ye,Ye]=w.useState(null);w.useEffect(()=>{if(!P){Ye(null);return}let W=!1;return le.getNodeSummary(P,Ne).then(ee=>{W||Ye(ee)}).catch(()=>{W||Ye(null)}),()=>{W=!0}},[P,Ne]);const Fe=w.useMemo(()=>r.find(W=>W.id===P)??null,[r,P]),Jn=w.useMemo(()=>se.map(W=>({...W,label:e(`starter.${W.key}.label`),hint:e(`starter.${W.key}.hint`),message:e(`starter.${W.key}.message`,{title:(Fe==null?void 0:Fe.title)??""})})),[se,Fe,e]),Xt=w.useRef(null),Mr=w.useCallback(()=>{var W;Fe&&((W=Xt.current)==null||W.call(Xt,e("chat.action.startLearningPrompt",{title:Fe.title}),e("chat.action.startLearning",{title:Fe.title})))},[Fe,e]),Vt=w.useCallback(async()=>{try{const[W,ee,fe,we,Ze,Rt]=await Promise.all([le.listCourses(),le.getStreak(),le.listSouls(),le.getActiveSoul(),le.getXpStatus(),le.getDueReviews()]);n(W),u(ee),E(fe),c(Ze),_(we),j(new Set(Rt)),f&&!W.some(zg=>zg.id===f)&&(h(null),L(null),s([]),a({}),M(null),y([]),T(null))}catch(W){m(W instanceof Error?W.message:String(W))}},[f]);w.useEffect(()=>{Vt()},[Vt]);const er=w.useCallback(async()=>{try{G(await le.isAgentReady())}catch{G({ready:!1,missing:e("error.checkReadyFailed")})}},[e]);w.useEffect(()=>{er();const W=()=>er();return window.addEventListener("llm-config-changed",W),()=>window.removeEventListener("llm-config-changed",W)},[er]);const Pr=w.useRef(0),Dr=w.useRef(0);w.useEffect(()=>{Pr.current=(l==null?void 0:l.todayXp)??0},[l]),w.useEffect(()=>{Dr.current=(o==null?void 0:o.currentStreak)??0},[o]);const _n=w.useCallback(async()=>{const W=r.filter(we=>we.type==="lesson"||we.type==="exam"),ee=await Promise.all(W.map(async we=>{const Ze=await le.getProgress(we.id);return[we.id,Ze]})),fe={};for(const[we,Ze]of ee)Ze&&(fe[we]=Ze);a(fe)},[r]);w.useEffect(()=>le.on("state:changed",ee=>{ee==="xp"?le.getXpStatus().then(fe=>{c(fe),Pr.current<100&&fe.todayXp>=100&&is("energy-full")}).catch(()=>{}):ee==="streak"?le.getStreak().then(fe=>{u(fe),fe.currentStreak>Dr.current&&is("streak")}).catch(()=>{}):ee==="mastery"&&(is("mastery"),Vt(),_n())}),[Vt,_n]),w.useEffect(()=>{f&&(le.getCourseLanguages(f).then(y).catch(()=>y([])),le.getCourseLanguage(f).then(T).catch(()=>T(null)))},[f]),w.useEffect(()=>{f&&(le.getCourseTree(f,v??void 0).then(async W=>{s(W);const ee=W.filter(Ze=>Ze.type==="lesson"||Ze.type==="exam"),fe=await Promise.all(ee.map(async Ze=>{const Rt=await le.getProgress(Ze.id);return[Ze.id,Rt]})),we={};for(const[Ze,Rt]of fe)Rt&&(we[Ze]=Rt);a(we)}).catch(p),le.getDashboard(f).then(M).catch(p))},[f,v,p]),w.useEffect(()=>{if(!P){pe([]);return}le.getStarterPrompts(P).then(pe).catch(()=>pe([]))},[P]),w.useEffect(()=>{const W=ee=>{if(ee.key==="Escape"&&de.activeId&&(le.abortAgentChatThread(de.activeId).catch(()=>{}),D(!1),Me(!1)),(ee.ctrlKey||ee.metaKey)&&ee.key==="k"&&(ee.preventDefault(),Me(fe=>!fe)),(ee.ctrlKey||ee.metaKey)&&ee.key==="b"&&(ee.preventDefault(),Oe()),(ee.ctrlKey||ee.metaKey)&&ee.key==="Tab"){if(ee.preventDefault(),F.current.active)return;const fe=de.threads;if(fe.length>1){const we=fe.findIndex(Rt=>Rt.id===de.activeId),Ze=ee.shiftKey?(we-1+fe.length)%fe.length:(we+1)%fe.length;de.setActiveId(fe[Ze].id)}}(!ee.target||!ee.target.matches("input, textarea, select"))&&(ee.key==="1"&&I("map"),ee.key==="2"&&I("import"),ee.key==="s"&&(ee.ctrlKey||ee.metaKey)&&(ee.preventDefault(),D(!0)))};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[P]);const tr=w.useCallback(async W=>{var ee;try{if(W.type==="exam"){L(W.id),$("content");return}if(((ee=i[W.id])==null?void 0:ee.status)==="locked"){L(null);return}await le.markNodeAttempted(W.id);const fe=await le.getStreak();await _n(),u(fe),L(W.id),$("content"),fa(!1)}catch(fe){p(fe)}},[i,_n,p]),nr=w.useCallback(W=>{if(F.current.active){B({open:!0,pendingAction:W});return}W()},[]),ke=w.useCallback(W=>{if(F.current.active&&W.id!==P){B({open:!0,pendingAction:()=>void tr(W)});return}tr(W)},[tr,P]),$e=w.useCallback(W=>{F.current=W},[]),Qe=w.useCallback(async()=>{const W=V.pendingAction;B({open:!1,pendingAction:null});const ee=F.current;if(F.current={active:!1,terminate:null},ee.active&&ee.terminate)try{await ee.terminate()}catch{}W==null||W()},[V.pendingAction]);zs(q,V.open),w.useEffect(()=>{if(!V.open)return;const W=ee=>{ee.key==="Escape"&&B({open:!1,pendingAction:null})};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[V.open]);const it=async W=>{try{await le.setActiveSoul(W),_(W)}catch(ee){p(ee)}},ct=w.useCallback(async(W,ee,fe)=>{try{await le.applyProposal(W),_e.markProposalStatus(ee,fe,!0)}catch(we){p(we)}},[_e,p]),Ce=w.useCallback(async(W,ee,fe)=>{try{await le.rejectProposal(W),_e.markProposalStatus(ee,fe,!1)}catch(we){p(we)}},[_e,p]),De=t.find(W=>W.id===f),He=w.useMemo(()=>{const W=new Set(r.map(ee=>ee.id));return new Set([...N].filter(ee=>W.has(ee)))},[N,r]),ot=He.size,Ke=w.useMemo(()=>r.filter(W=>W.type==="section").sort((W,ee)=>W.orderIdx-ee.orderIdx),[r]),dt=w.useMemo(()=>{const W=th.map(fe=>C.find(we=>we.name===fe)).filter(fe=>!!fe),ee=C.filter(fe=>!th.includes(fe.name));return[...W,...ee]},[C]),st=E3(f),hn=v3(),ut=Gu();w.useEffect(()=>le.on("exam:status",ee=>{if(ee.status!=="ready"||ee.nodeId===P)return;const fe=r.find(we=>we.id===ee.nodeId);fe&&ut.show(e("exam.ready.toast",{title:fe.title}),{duration:4e3})}),[P,r,ut,e]);const Di=w.useCallback(async W=>{const ee=t.find(fe=>fe.id===W);try{await le.deleteCourse(W),ut.show(e("import.deleted",{title:(ee==null?void 0:ee.title)??W}),{duration:3e3}),Vt()}catch(fe){p(fe)}},[t,Vt,p,ut,e]),rr=w.useCallback(async(W,ee,fe)=>{if(!W.trim()||_e.streaming)return;if(!de.activeId){const Ze=await de.ensureThreadForSend(W,ee);if(Ze){_e.send(W,Ze,ee,fe);return}ut.show(e("toast.threadCreateFailed"));return}const we=de.activeThread;we&&!we.title&&de.update(we.id,{title:(ee??W).trim()}),_e.send(W,void 0,ee,fe)},[_e,de,ut,e]),Oi=w.useRef(_e.streaming);Oi.current=_e.streaming;const bt=w.useCallback(W=>{const ee=v_(W,e),fe=T_(W,e),we=Ze=>{var Rt;if(!Oi.current){(Rt=Xt.current)==null||Rt.call(Xt,ee,fe);return}Ze>0&&setTimeout(()=>we(Ze-1),2e3)};we(10)},[e]);Xt.current=rr;const ir=new Set(["concept_map","diagram","compare_table","code_walkthrough"]),Qt=w.useMemo(()=>{const W=wd(_e.messages).filter(fe=>{var we;return ir.has(((we=fe.output)==null?void 0:we.artifactType)??"")});if(W.length)return W[W.length-1];const ee=st.items.filter(fe=>ir.has(fe.artifactType)).map(fe=>{try{return{id:fe.id,toolName:fe.artifactType,output:JSON.parse(fe.data)}}catch{return null}}).filter(fe=>fe!==null);return ee.length?ee[ee.length-1]:null},[_e.messages,st.items]),sr=w.useRef(new Set);w.useEffect(()=>{!Qt||sr.current.has(Qt.id)||(sr.current.add(Qt.id),_e.streaming&&$("board"))},[Qt,_e.streaming]);const Or=w.useMemo(()=>_e.messages.reduce((W,ee)=>W+ee.parts.reduce((fe,we)=>we.type==="text"?fe+bh(we.text):fe,0),0),[_e.messages]),Ct=w.useRef(!1);w.useEffect(()=>{ot>0&&!Ct.current&&(Ct.current=!0,ut.show(e("review.nudge",{n:ot}),{duration:4e3}))},[ot,ut,e]);const In=w.useMemo(()=>wd(_e.messages),[_e.messages]),Fi=w.useRef(new Set);w.useEffect(()=>{for(const W of In){const ee=W.output;if(!ee||!ee.artifactType)continue;const fe=`${ee.artifactType}:${JSON.stringify(ee)}`;Fi.current.has(fe)||(Fi.current.add(fe),st.save({nodeId:P,artifactType:ee.artifactType,title:ee.title??null,data:ee}),ut.show(e("toast.artifactSaved"),{duration:3e3}))}},[In,st,P,ut,e]),w.useEffect(()=>{A!=="map"&&$(null)},[A]);const[Ug,ca]=w.useState(!1),[da,fa]=w.useState(!1),Sl=(Fe==null?void 0:Fe.type)==="exam";return w.useEffect(()=>{Sl&&window.dispatchEvent(new CustomEvent("companion-exam-enter"))},[Sl]),w.useEffect(()=>{k1(da)},[da]),x.jsxs("div",{className:"h-[var(--app-height,100vh)] flex flex-col bg-surface-1 text-neutral-900 dark:text-neutral-100 overflow-hidden",children:[x.jsx(HR,{streak:o,xp:l,fontSize:hn.size,onFontBump:hn.bump,onOpenSettings:()=>D(!0),leftVisible:Le,rightVisible:Be,onToggleLeft:Oe,onToggleRight:te,tier:X,bottomBar:X===3?x.jsx("nav",{className:"inline-flex items-center gap-0.5 p-0.5 rounded-lg bg-ink/5 ring-1 ring-inset ring-[var(--border)]","data-testid":"t3-pane-switcher",role:"tablist","aria-label":e("pane.switcher"),children:[{k:"rail",icon:dh,label:e("pane.map"),testid:"t3-btn-rail"},{k:"chat",icon:Z1,label:e("pane.chat"),testid:"t3-btn-chat"},{k:"notebook",icon:rx,label:e("pane.notes"),testid:"t3-btn-notebook"}].map(({k:W,icon:ee,label:fe,testid:we})=>x.jsx("button",{role:"tab","aria-selected":re===W,"aria-label":fe,"data-testid":we,"data-tooltip":fe,onClick:()=>ne(W),className:`w-8 h-7 flex items-center justify-center rounded-md transition-colors ${re===W?"bg-brand/20 text-brand":"text-ink-muted active:bg-ink/10"}`,children:x.jsx(ee,{className:"w-4 h-4"})},W))}):void 0}),d&&x.jsx(VR,{message:d,onClose:()=>m(null)}),x.jsxs("div",{className:"flex-1 flex min-h-0 min-w-0",onTouchStart:be,onTouchEnd:ze,children:[Le&&x.jsx(gb,{fullWidth:X===3,view:A,onViewChange:I,courseTitle:(De==null?void 0:De.title)??null,courseId:f,courses:t,sections:Ke,tree:r,progressMap:i,selectedNodeId:P,dueCount:ot,dueNodeIds:He,overallMastery:(S==null?void 0:S.overallMastery)??0,streak:(o==null?void 0:o.currentStreak)??0,streaming:_e.streamingThreadIds.length>0,streamingNodeIds:_e.streamingNodeIds,onJumpNode:W=>{const ee=r.find(fe=>fe.id===W);ee&&ke(ee),X===3&&ne("chat")},onOpenReview:()=>ca(!0),onSelectCourse:W=>nr(()=>{h(W),Vt()}),onDeleteCourse:W=>nr(()=>{Di(W)}),onCoursesChanged:()=>{Vt()},availableLanguages:g,currentLocale:v,onLocaleChange:async W=>{f&&(await le.setCourseLanguage(f,W),T(W))}}),x.jsxs(x.Fragment,{children:[Ee&&x.jsx("div",{className:"relative flex flex-col h-full bg-surface-1 shrink-0 min-w-0 motion-safe:transition-[width] motion-safe:duration-200",style:X===3?{flex:1}:Be?{width:"clamp(480px, 36vw, 800px)"}:{flex:1},"data-testid":"chat-panel",children:f?(Fe==null?void 0:Fe.type)==="exam"?x.jsx(w.Suspense,{fallback:null,children:x.jsx(OR,{examNode:Fe,locale:Ne,onSessionChange:$e,paused:V.open,onExamCompleted:()=>{le.getProgress(Fe.id).then(W=>{W&&a(ee=>({...ee,[Fe.id]:W}))})}})}):x.jsxs(x.Fragment,{children:[x.jsx(w_,{threads:de.threads,activeThread:de.activeThread,focusNodeTitle:(Fe==null?void 0:Fe.title)??null,streamingThreadIds:_e.streamingThreadIds,onPickThread:W=>{de.setActiveId(W)},onCreate:()=>{de.create({title:null}),ut.show(e("toast.threadCreated"))},onRename:(W,ee)=>{de.update(W,{title:ee}),ut.show(e("toast.threadRenamed"))},onArchive:W=>{de.update(W,{status:"archived"}),ut.show(e("toast.threadArchived"),{duration:5e3,action:{label:e("action.undo"),onClick:()=>de.update(W,{status:"active"})}})},onDelete:W=>{const ee=de.removeWithUndo(W);ee&&(ut.show(`${e("toast.threadDeleted")}${ee.title?`「${ee.title}」`:""}`,{duration:5e3,action:{label:e("action.undo"),onClick:()=>{de.restore(ee),ut.show(e("toast.restored"))}}}),setTimeout(()=>{le.threadDelete(ee.id).catch(()=>{})},5500))}}),x.jsx(C3,{messages:_e.messages,streaming:_e.streaming,onApplyProposal:ct,onRejectProposal:Ce,summary:ye,onStartLearning:Xe!=null&&Xe.ready?Mr:void 0,agentReady:(Xe==null?void 0:Xe.ready)??!1,onGotoSettings:()=>D(!0),hasNode:!!Fe,selectedNodeId:P,threadId:de.activeId,onPickQuizAction:W=>{rr(W)},onQuizCompleted:bt,cardMode:X===3,chatNotes:st.items.filter(W=>W.artifactType==="user_note"&&W.sourceAnchor),onSaveChatNote:(W,ee,fe,we)=>{!Fe||!de.activeId||(st.saveUserNote({nodeId:Fe.id,text:W,sourceType:"chat",sourceAnchor:{type:"chat",threadId:de.activeId,msgId:ee,startOffset:fe,endOffset:we}}),ut.show(e("toast.noteSaved"),{duration:2e3}))}}),x.jsx(Q3,{nodeId:P,agentReady:(Xe==null?void 0:Xe.ready)??!1,streaming:_e.streaming,souls:dt,activeSoul:k,starterPrompts:_e.messages.length>0?Jn:[],onPickSoul:it,onSend:rr,onStop:_e.stop,onLogFriction:P?(W,ee)=>{le.logFriction(P,W,ee),ut.show(e("chat.friction.saved"),{duration:2500})}:void 0,onGotoSettings:()=>D(!0),insertText:Te,historyTokens:Or})]}):x.jsx("div",{className:"flex-1 flex items-center justify-center px-6","data-testid":"chat-no-course",children:x.jsxs("div",{className:"text-center max-w-sm",children:[x.jsx("div",{className:"text-5xl mb-4 opacity-30",children:"📚"}),x.jsx("div",{className:"text-title font-bold text-ink mb-2",children:e("course.empty.title")}),x.jsx("div",{className:"text-body text-ink-muted leading-relaxed",children:e("course.empty.desc")})]})})}),Be&&x.jsx("main",{className:X===3?"flex-1 min-w-0 bg-surface-2":"flex-1 min-w-[440px] bg-surface-2","data-testid":X===3?"notebook-pane-full":void 0,children:x.jsx(p3,{selectedNode:Fe,items:st.items,loading:st.loading,forceTab:R,canvasArtifact:Qt,onUserTabChange:()=>$(null),onRemove:W=>{st.remove(W),ut.show(e("toast.noteDeleted"))},onTogglePin:W=>{st.togglePin(W)},onRecordQuizResult:(W,ee)=>{st.recordQuizResult(W,ee)},onUpdateNoteComment:(W,ee)=>{st.updateUserNoteComment(W,ee)},onSaveContentNote:(W,ee)=>{Fe&&(st.saveUserNote({nodeId:Fe.id,text:W,sourceType:"content",sourceAnchor:ee}),ut.show(e("toast.noteSaved"),{duration:2e3}))},onJumpToSource:We,onQuoteToChat:Ve,locale:v,isReviewing:da,onReviewDone:()=>fa(!1)})})]})]}),K&&x.jsx(UR,{onClose:()=>D(!1)}),Ug&&x.jsx(zR,{onClose:()=>ca(!1),tree:r,dashboard:S,progressMap:i,onPickNode:W=>{nr(()=>{L(W),$("content"),ca(!1),fa(!0)})}}),V.open&&x.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50","data-testid":"exam-leave-modal",children:x.jsxs("div",{ref:q,className:"w-[min(400px,90vw)] rounded-2xl bg-surface-0 p-6 shadow-elevated border border-warning/40",role:"dialog","aria-modal":"true","aria-label":e("exam.leave.title"),children:[x.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[x.jsx(ku,{className:"w-5 h-5 text-warning shrink-0"}),x.jsx("span",{className:"text-title font-bold text-ink",children:e("exam.leave.title")})]}),x.jsx("div",{className:"text-body text-ink-muted mb-5 leading-relaxed",children:e("exam.leave.message")}),x.jsxs("div",{className:"flex justify-end gap-2",children:[x.jsx("button",{className:"btn-3d-neutral px-4 py-1.5 text-body",onClick:()=>B({open:!1,pendingAction:null}),"data-testid":"exam-leave-cancel",children:e("exam.leave.cancel")}),x.jsx("button",{className:"btn-3d-brand px-4 py-1.5 text-body",style:{background:"var(--warning)",boxShadow:"0 3px 0 0 var(--warning-dark)"},onClick:()=>void Qe(),"data-testid":"exam-leave-confirm",children:e("exam.leave.confirm")})]})]})}),rt&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(FR,{onClose:()=>Me(!1),onPick:W=>{Me(!1),jR(W)},hasNode:!!P})}),x.jsx(Cb,{}),x.jsx(PR,{}),x.jsx(f_,{courseId:f})]})}function jR(e){window.dispatchEvent(new CustomEvent("lookatstudy-command",{detail:e}))}function HR({streak:e,xp:t,fontSize:n,onFontBump:r,onOpenSettings:s,leftVisible:i,rightVisible:a,onToggleLeft:o,onToggleRight:u,tier:l,bottomBar:c}){const f=Ge();return c?x.jsx("header",{className:"app-header shrink-0",children:x.jsxs("div",{className:"flex items-center h-12 px-4",children:[x.jsx("div",{className:"flex-1 flex items-center min-w-0",children:t&&x.jsxs("div",{className:"flex items-center gap-1 shrink-0","data-testid":"xp-bar",title:f("header.energy"),children:[x.jsx(To,{className:`w-3.5 h-3.5 text-brand ${t.todayXp>=100?"energy-breathe":""}`,fill:t.todayXp>=100?"currentColor":"none","aria-hidden":"true"}),x.jsx("span",{className:"text-label font-bold tabular-nums text-brand",children:t.todayXp})]})}),c,x.jsx("div",{className:"flex-1 flex items-center justify-end",children:x.jsx("button",{onClick:s,"data-testid":"header-settings","aria-label":f("header.settings"),className:"text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-300 w-8 h-8 flex items-center justify-center rounded-lg hover:bg-neutral-200 dark:hover:bg-neutral-800/50 transition-colors",title:f("header.settings"),children:x.jsx(Es,{className:"w-4 h-4"})})})]})}):x.jsx("header",{className:"app-header shrink-0 flex flex-col",children:x.jsxs("div",{className:"flex items-center pt-2.5 pb-3 px-6 justify-between",children:[x.jsx("div",{className:"flex items-center gap-2 min-w-0",children:x.jsxs("h1",{className:"text-body font-extrabold tracking-tight text-neutral-900 dark:text-neutral-100 select-none min-w-0 truncate",children:["Lookat",x.jsx("span",{className:"text-brand",children:"Study"})]})}),x.jsxs("div",{className:"flex items-center gap-3",children:[l!==3&&x.jsxs("div",{className:"flex items-center gap-0.5",children:[x.jsx("button",{onClick:o,"data-testid":"layout-toggle-left",className:`w-7 h-7 flex items-center justify-center rounded-md transition-colors ${i?"text-neutral-500 hover:bg-neutral-200 dark:text-neutral-300 dark:hover:bg-neutral-800":"text-neutral-600 bg-neutral-200 dark:bg-neutral-800"}`,title:f("header.toggleLeft"),children:x.jsx(ex,{className:"w-4 h-4"})}),x.jsx("button",{onClick:u,"data-testid":"layout-toggle-right",className:`w-7 h-7 flex items-center justify-center rounded-md transition-colors ${a?"text-neutral-500 hover:bg-neutral-200 dark:text-neutral-300 dark:hover:bg-neutral-800":"text-neutral-600 bg-neutral-200 dark:bg-neutral-800"}`,title:f("header.toggleRight"),children:x.jsx(tx,{className:"w-4 h-4"})})]}),l!==3&&x.jsxs("div",{className:"flex items-center gap-0.5","data-testid":"font-size-control",children:[x.jsx("button",{onClick:()=>r("down"),disabled:n==="small","data-testid":"font-smaller",className:"text-label w-7 h-7 flex items-center justify-center rounded-md text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 hover:bg-ink/5 disabled:opacity-20 disabled:cursor-not-allowed transition-colors",title:f("header.font.smaller"),children:"A-"}),x.jsx("button",{onClick:()=>r("up"),disabled:n==="large","data-testid":"font-larger",className:"text-body w-7 h-7 flex items-center justify-center rounded-md text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 hover:bg-ink/5 disabled:opacity-20 disabled:cursor-not-allowed transition-colors",title:f("header.font.larger"),children:"A+"})]}),t&&x.jsxs("div",{className:"flex items-center gap-1.5","data-testid":"xp-bar",title:f("header.energy"),children:[x.jsx(To,{className:`w-3.5 h-3.5 text-brand ${t.todayXp>=100?"energy-breathe":""}`,fill:t.todayXp>=100?"currentColor":"none","aria-hidden":"true"}),x.jsx("div",{className:"w-16 h-2 bg-neutral-200 dark:bg-neutral-800 rounded-full overflow-hidden",children:x.jsx("div",{className:"h-full rounded-full bg-brand transition-all duration-500",style:{width:`${Math.min(100,Math.max(3,t.todayXp))}%`}})}),x.jsx("span",{className:"text-label font-bold tabular-nums text-brand",children:t.todayXp})]}),t&&x.jsx("div",{className:"flex items-center gap-1 px-2 py-0.5 rounded-full bg-brand/10","data-testid":"level-badge",title:f("header.level.title"),children:x.jsxs("span",{className:"text-label font-bold text-brand",children:["Lv.",t.level]})}),e&&x.jsx(qR,{streak:e}),x.jsx("button",{onClick:s,"data-testid":"header-settings",className:"text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-300 w-8 h-8 flex items-center justify-center rounded-lg hover:bg-neutral-200 dark:hover:bg-neutral-800/50 transition-colors",title:f("header.settings"),children:x.jsx(Es,{className:"w-4 h-4"})})]})]})})}function UR({onClose:e}){const t=Ge(),n=w.useRef(null);return zs(n,!0),x.jsxs("div",{className:"fixed inset-0 z-50 flex justify-end","data-testid":"settings-drawer",children:[x.jsx("div",{className:"absolute inset-0 bg-black/40",onClick:e}),x.jsxs("div",{ref:n,role:"dialog","aria-modal":"true","aria-label":t("settings.title"),className:"relative w-full max-w-lg h-full bg-surface-0 border-l border-[var(--border)] shadow-elevated flex flex-col",children:[x.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)] shrink-0",children:[x.jsx("h2",{className:"text-body font-bold",children:t("settings.title")}),x.jsx("button",{onClick:e,"data-testid":"settings-close","aria-label":t("action.close"),className:"text-ink-muted hover:text-ink-strong w-8 h-8 flex items-center justify-center rounded-lg hover:bg-surface-3",children:"✕"})]}),x.jsx("div",{className:"flex-1 overflow-y-auto",children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(DR,{})})})]})]})}function zR({onClose:e,tree:t,onPickNode:n,dashboard:r,progressMap:s}){const i=Ge(),a=w.useRef(null);zs(a,!0);const[o,u]=w.useState([]);w.useEffect(()=>{le.getAllSrsItems().then(T=>u(T)).catch(()=>u([]))},[]);const l=w.useMemo(()=>new Map(o.map(T=>[T.nodeId,T])),[o]),c=w.useMemo(()=>{const T=new Map(t.map(E=>[E.id,E])),C=o.filter(E=>T.has(E.nodeId));return{overdue:C.filter(E=>E.overdue),short:C.filter(E=>!E.overdue&&E.intervalDays>0&&E.intervalDays<=7),long:C.filter(E=>!E.overdue&&E.intervalDays>7),inactive:C.filter(E=>E.repetitions===0&&!E.overdue)}},[o,t]),f=w.useMemo(()=>t.filter(C=>C.type==="section"&&(C.world??"study")==="study").sort((C,E)=>C.orderIdx-E.orderIdx).map(C=>({section:C,lessons:t.filter(E=>E.parentId===C.id&&E.type==="lesson").sort((E,k)=>E.orderIdx-k.orderIdx)})),[t]),h=w.useMemo(()=>{const T=new Map;for(const C of(r==null?void 0:r.sections)??[])T.set(C.sectionId,C.avgMastery);return T},[r]),d=w.useMemo(()=>t.filter(T=>{var E;const C=(E=s[T.id])==null?void 0:E.status;return T.type==="lesson"&&(T.world??"study")==="study"&&(C==="in_progress"||C==="mastered")}),[t,s]),[m,p]=w.useState(new Set),g=T=>p(C=>{const E=new Set(C);return E.has(T)?E.delete(T):E.add(T),E}),y=T=>{const C=l.get(T);return C?C.overdue?{color:"bg-review",title:i("review.quadrant.overdue")}:C.intervalDays>0&&C.intervalDays<=7?{color:"bg-gold",title:i("review.quadrant.short")}:C.intervalDays>7?{color:"bg-brand",title:i("review.quadrant.long")}:null:null},v=c.overdue.length>0;return x.jsxs("div",{className:"fixed inset-0 z-50 flex justify-end","data-testid":"review-drawer",children:[x.jsx("div",{className:"absolute inset-0 bg-black/40",onClick:e}),x.jsxs("div",{ref:a,role:"dialog","aria-modal":"true","aria-label":i("review.title"),className:"relative w-full max-w-md h-full bg-surface-0 border-l border-[var(--border)] shadow-elevated flex flex-col",children:[x.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)] shrink-0",children:[x.jsxs("h2",{className:"text-body font-bold flex items-center gap-1.5",children:[x.jsx(vn,{className:"w-4 h-4","aria-hidden":"true"})," ",i("review.title")]}),x.jsx("button",{onClick:e,"data-testid":"review-close","aria-label":i("action.close"),className:"text-ink-muted hover:text-ink-strong w-8 h-8 flex items-center justify-center rounded-lg hover:bg-surface-3",children:"✕"})]}),x.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-5","data-testid":"review-panel",children:[d.length>0&&x.jsxs("button",{onClick:()=>{const T=d[Math.floor(Math.random()*d.length)];T&&n(T.id)},"data-testid":"review-interleave",className:"btn-3d-neutral w-full py-2.5 text-body flex items-center justify-center gap-1.5",children:[x.jsx(dx,{className:"w-4 h-4"}),i("review.interleave")]}),o.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-ink-muted uppercase tracking-wider mb-2",children:i("review.srsHint")}),x.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:[{items:c.overdue,label:i("review.quadrant.overdue"),dot:"bg-review"},{items:c.short,label:i("review.quadrant.short"),dot:"bg-gold"},{items:c.long,label:i("review.quadrant.long"),dot:"bg-brand"},{items:c.inactive,label:i("review.quadrant.inactive"),dot:"bg-ink-faint"}].filter(T=>T.items.length>0).map(T=>x.jsxs("div",{className:"flex items-center gap-1 px-2 py-1 rounded-full bg-surface-3",children:[x.jsx("span",{className:`w-2 h-2 rounded-full ${T.dot}`}),x.jsx("span",{className:"text-label text-ink-muted",children:T.label}),x.jsx("span",{className:"text-label font-extrabold text-ink-strong tabular-nums",children:T.items.length})]},T.label))}),v&&x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"text-label text-ink-faint mb-1.5",children:i("review.overdueQuickHint")}),x.jsx("div",{className:"flex flex-wrap gap-1.5",children:c.overdue.slice(0,8).map(T=>{const C=t.find(E=>E.id===T.nodeId);return C?x.jsx("button",{onClick:()=>n(T.nodeId),"data-testid":`review-overdue-${T.nodeId.slice(0,8)}`,className:"px-2 py-1 rounded-full bg-review/10 ring-1 ring-review/20 text-label text-review font-bold hover:bg-review/20 transition-colors truncate max-w-[140px]",children:C.title},T.nodeId):null})})]})]}),f.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-ink-muted uppercase tracking-wider mb-2",children:i("review.myProgress")}),x.jsx("div",{className:"space-y-1",children:f.map(({section:T,lessons:C})=>{const E=Math.round((h.get(T.id)??0)*100),k=m.has(T.id),_=C.filter(A=>{var S;const I=(S=s[A.id])==null?void 0:S.status;return I==="in_progress"||I==="mastered"});return x.jsxs("div",{children:[x.jsxs("button",{onClick:()=>g(T.id),className:"w-full flex items-center gap-2 p-2 rounded-lg hover:bg-surface-3 transition-colors",children:[k?x.jsx(Eu,{className:"w-3.5 h-3.5 text-ink-muted shrink-0"}):x.jsx(D1,{className:"w-3.5 h-3.5 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-body text-ink-strong font-bold truncate flex-1 text-left",children:T.title}),_.length>0&&x.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[x.jsx("div",{className:"w-16 h-1.5 bg-surface-3 rounded-full overflow-hidden",children:x.jsx("div",{className:`h-full rounded-full ${E>=100?"bg-gold":"bg-brand"}`,style:{width:`${Math.max(3,E)}%`}})}),x.jsxs("span",{className:"text-label tabular-nums text-ink-muted w-8 text-right",children:[E,"%"]})]})]}),k&&x.jsx("div",{className:"ml-5 mt-0.5 mb-1 space-y-0.5","data-testid":"review-lesson-list",children:C.length===0?x.jsx("div",{className:"text-label text-ink-faint py-1.5 pl-1",children:"—"}):C.map(A=>{const I=s[A.id],S=I?Math.round((I.mastery??0)*100):null,M=y(A.id),N=(I==null?void 0:I.status)==="in_progress"||(I==null?void 0:I.status)==="mastered";return x.jsxs("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded-lg transition-colors ${(M==null?void 0:M.color)==="bg-review"?"bg-review/8":"hover:bg-surface-3"}`,children:[M?x.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${M.color} shrink-0`,title:M.title}):x.jsx("span",{className:"w-1.5 h-1.5 shrink-0"}),x.jsx("span",{className:`text-label truncate flex-1 ${N?"text-ink-strong":"text-ink-faint"}`,children:A.title}),S!==null&&x.jsxs("span",{className:"text-label tabular-nums text-ink-muted shrink-0 w-8 text-right",children:[S,"%"]}),N&&x.jsx("button",{onClick:()=>n(A.id),"data-testid":`review-lesson-${A.id.slice(0,8)}`,className:"shrink-0 px-2 py-0.5 rounded-md bg-brand/15 text-brand text-caption font-bold hover:bg-brand/25 transition-colors",children:i("review.reviewLesson")})]},A.id)})})]},T.id)})})]}),r&&r.frictionByNode.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-review uppercase tracking-wider mb-1.5",children:i("dashboard.mini.struggle")}),r.frictionByNode.map(T=>x.jsxs("button",{onClick:()=>n(T.nodeId),className:"flex items-center gap-2 py-0.5 w-full text-left hover:bg-surface-3 rounded px-1",children:[x.jsxs("span",{className:"text-label text-review font-bold tabular-nums",children:[T.count,"×"]}),x.jsx("span",{className:"text-label text-ink-strong truncate flex-1",children:T.title})]},T.nodeId))]}),d.length===0&&o.length===0&&f.length===0&&x.jsxs("div",{className:"text-center py-16","data-testid":"review-empty",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body text-ink-muted",children:i("review.empty.title")}),x.jsx("div",{className:"text-label text-ink-faint mt-1",children:i("review.empty.desc")})]})]})]})]})}function VR({message:e,onClose:t}){const n=Ge();return x.jsxs("div",{role:"alert","data-testid":"error-banner",className:"px-4 py-2 border-b border-warning-tint-border text-warning text-body flex items-center justify-between",style:{backgroundColor:"var(--warning-tint)"},children:[x.jsxs("span",{children:["⚠️ ",e]}),x.jsx("button",{className:"ml-3 underline text-warning-light",onClick:t,children:n("action.close")})]})}function qR({streak:e}){const t=Ge();return x.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-full border border-review/20",style:{backgroundColor:"var(--review-tint)"},"data-testid":"streak-badge",title:t("streak.title",{n:e.currentStreak,m:e.longestStreak}),children:[x.jsx(uh,{className:"w-4 h-4 text-review flame-flicker"}),x.jsx("span",{className:"text-body font-extrabold text-review",children:e.currentStreak}),e.freezeCount>0&&x.jsxs("span",{className:"flex items-center gap-0.5 ml-0.5","data-testid":"freeze-badge",title:t("streak.freeze.title",{n:e.freezeCount}),children:[x.jsx(cx,{className:"w-3 h-3 text-review/80","aria-hidden":"true"}),x.jsx("span",{className:"text-label font-bold text-review/80",children:e.freezeCount})]})]})}window.addEventListener("error",e=>{var t;console.error("[FATAL renderer error]",((t=e.error)==null?void 0:t.stack)||e.message)});window.addEventListener("unhandledrejection",e=>{var t;console.error("[FATAL unhandled rejection]",((t=e.reason)==null?void 0:t.stack)||e.reason)});function $R({rejected:e}){const t=navigator.language.startsWith("zh"),[n,r]=yu.useState(""),s=i=>{i.preventDefault();const a=n.trim();if(!a)return;const o=a.includes("token=")?new URL(a).searchParams.get("token")??"":a;o&&Se(async()=>{const{setWebToken:u}=await import("./api-web-DeJFZI02.js");return{setWebToken:u}},[],import.meta.url).then(({setWebToken:u})=>u(o))};return x.jsx("div",{className:"min-h-[var(--app-height,100vh)] bg-[#0e2a12] flex items-center justify-center p-6",children:x.jsxs("form",{onSubmit:s,className:"w-full max-w-sm text-center",children:[x.jsx("div",{className:"text-4xl mb-3",children:"🎈"}),x.jsx("h1",{className:"text-title font-bold text-white mb-1",children:"LookatStudy"}),x.jsx("p",{className:"text-label text-white/55 leading-relaxed mb-5",children:t?"连接本机学习服务:粘贴启动时打印的令牌或整条链接":"Connect to your study server — paste the token or the full link printed at startup"}),e&&x.jsx("p",{className:"text-label text-warning-light mb-3",children:t?"上次的令牌被拒绝了,请重新输入":"Previous token was rejected, please re-enter"}),x.jsx("input",{type:"text",value:n,onChange:i=>r(i.target.value),placeholder:t?"访问令牌":"access token",autoFocus:!0,className:"w-full bg-black/30 text-white placeholder:text-white/30 text-body font-mono rounded-lg px-3 py-2.5 border border-white/20 focus:border-brand focus:outline-none transition-colors mb-3"}),x.jsx("button",{type:"submit",disabled:!n.trim(),className:"btn-3d-brand w-full px-3 py-2.5 text-body disabled:opacity-40",children:t?"连接":"Connect"}),x.jsx("p",{className:"text-caption text-white/40 leading-relaxed mt-5",children:t?"令牌在服务启动日志里,形如 http://127.0.0.1:17890/?token=…,也可以直接打开那个链接。":"The token is in the server startup log, like http://127.0.0.1:17890/?token=… — opening that link directly works too."})]})})}const Hg=w1.createRoot(document.getElementById("root"));function WR(){Hg.render(x.jsx(yu.StrictMode,{children:x.jsx(i3,{children:x.jsx(BR,{})})}))}function nh(e){Hg.render(x.jsx(yu.StrictMode,{children:x.jsx($R,{rejected:e})}))}async function YR(){const{installAppHeight:e}=await Se(async()=>{const{installAppHeight:t}=await import("./app-height-D5bf5z0g.js");return{installAppHeight:t}},[],import.meta.url);if(e(),!window.api){const t=await Se(()=>import("./api-web-DeJFZI02.js"),[],import.meta.url);if(window.addEventListener(t.TOKEN_REJECTED_EVENT,()=>nh(!0)),!t.hasWebToken()){nh(!1);return}try{await t.installWebApi()}catch(n){console.error("[boot] web api 安装失败:",n)}}WR()}YR();export{Ws as $,eT as A,vn as B,H1 as C,yh as D,mh as E,Us as F,$1 as G,ku as H,XR as I,Ul as J,lh as K,X1 as L,dh as M,QR as N,hx as O,hh as P,t4 as Q,B1 as R,dx as S,mx as T,yx as U,ix as V,xh as W,yr as X,Lb as Y,Sn as Z,Se as _,le as a,Lh as a0,Hh as a1,Oc as a2,Tm as a3,Si as a4,mw as a5,zs as b,me as c,ux as d,ss as e,ch as f,kh as g,O1 as h,Tn as i,Tu as j,ah as k,vs as l,e4 as m,md as n,hd as o,JR as p,wv as q,qe as r,ZR as s,Ae as t,Ge as u,Zk as v,jn as w,Qk as x,Qs as y,mm as z};
462
+ `),()=>{var I;(I=o.current)==null||I.removeAttribute("data-motion-pop-id"),A.contains(_)&&A.removeChild(_)}},[t]),x.jsx(y6,{isPresent:t,childRef:o,sizeRef:u,pop:i,children:i===!1?e:w.cloneElement(e,{ref:f})})}const T6=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:i,mode:a,anchorX:o,anchorY:u,root:l})=>{const c=Zu(v6),f=w.useId(),h=w.useRef(n),d=w.useRef(r);Ns(()=>{h.current=n,d.current=r});let m=!0,p=w.useMemo(()=>(m=!1,{id:f,initial:t,isPresent:n,custom:s,onExitComplete:g=>{c.set(g,!0);for(const y of c.values())if(!y)return;r&&r()},register:g=>(c.set(g,!1),()=>{var y;c.delete(g),!h.current&&!c.size&&((y=d.current)==null||y.call(d))})}),[n,c,r]);return i&&m&&(p={...p}),w.useMemo(()=>{c.forEach((g,y)=>c.set(y,!1))},[n]),w.useEffect(()=>{!n&&!c.size&&r&&r()},[n]),e=x.jsx(E6,{pop:a==="popLayout",isPresent:n,anchorX:o,anchorY:u,root:l,children:e}),x.jsx(ia.Provider,{value:p,children:e})};function v6(){return new Map}function _g(e=!0){const t=w.useContext(ia);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:s}=t,i=w.useId();w.useEffect(()=>{if(e)return s(i)},[e]);const a=w.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,a]:[!0]}const ts=e=>e.key||"";function Uf(e){const t=[];return w.Children.forEach(e,n=>{w.isValidElement(n)&&t.push(n)}),t}const k6=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:s=!0,mode:i="sync",propagate:a=!1,anchorX:o="left",anchorY:u="top",root:l})=>{const[c,f]=_g(a),h=w.useMemo(()=>Uf(e),[e]),d=a&&!c?[]:h.map(ts),m=w.useRef(!0),p=w.useRef(h),g=Zu(()=>new Map),y=w.useRef(new Set),[v,T]=w.useState(h),[C,E]=w.useState(h);Ns(()=>{a&&!c&&!C.length&&(f==null||f())},[c,a,C.length,f]),Ns(()=>{m.current=!1,p.current=h;for(let A=0;A<C.length;A++){const I=ts(C[A]);d.includes(I)?(g.delete(I),y.current.delete(I)):g.get(I)!==!0&&g.set(I,!1)}},[C,d.length,d.join("-")]);const k=[];if(h!==v){let A=[...h];for(let I=0;I<C.length;I++){const S=C[I],M=ts(S);d.includes(M)||(A.splice(I,0,S),k.push(S))}return i==="wait"&&k.length&&(A=k),E(Uf(A)),T(h),null}const{forceRender:_}=w.useContext(Qu);return x.jsx(x.Fragment,{children:C.map(A=>{const I=ts(A),S=a&&!c?!1:h===C||d.includes(I),M=()=>{if(y.current.has(I))return;if(g.has(I))y.current.add(I),g.set(I,!0);else return;let N=!0;g.forEach(j=>{j||(N=!1)}),N&&(_==null||_(),E(p.current),a&&(f==null||f()),r&&r())};return x.jsx(T6,{isPresent:S,initial:!m.current||n?void 0:!1,custom:t,presenceAffectsLayout:s,mode:i,root:l,onExitComplete:S?void 0:M,anchorX:o,anchorY:u,children:A},I)})})},Ig=w.createContext({strict:!1}),zf={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Vf=!1;function w6(){if(Vf)return;const e={};for(const t in zf)e[t]={isEnabled:n=>zf[t].some(r=>!!n[r])};ig(e),Vf=!0}function Ng(){return w6(),u5()}function S6(e){const t=Ng();for(const n in e)t[n]={...t[n],...e[n]};ig(t)}const la=w.createContext({});function A6(e,t){if(ua(e)){const{initial:n,animate:r}=e;return{initial:n===!1||vi(n)?n:void 0,animate:vi(r)?r:void 0}}return e.inherit!==!1?t:{}}function C6(e){const{initial:t,animate:n}=A6(e,w.useContext(la));return w.useMemo(()=>({initial:t,animate:n}),[qf(t),qf(n)])}function qf(e){return Array.isArray(e)?e.join(" "):e}const kl=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Rg(e,t,n){for(const r in t)!Et(t[r])&&!dg(r,n)&&(e[r]=t[r])}function _6({transformTemplate:e},t){return w.useMemo(()=>{const n=kl();return El(n,t,e),Object.assign({},n.vars,n.style)},[t])}function I6(e,t){const n=e.style||{},r={};return Rg(r,n,e),Object.assign(r,_6(e,t)),r}function N6(e,t){const n={},r=I6(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const Lg=()=>({...kl(),attrs:{}});function R6(e,t,n,r){const s=w.useMemo(()=>{const i=Lg();return hg(i,t,pg(r),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Rg(i,e.style,e),s.style={...i,...s.style}}return s}const L6=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Hs(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||L6.has(e)}function M6(e,t){return e.startsWith("on")?!Hs(e):(t==null?void 0:t(e))??!Hs(e)}function P6(e,t,n,r){const s={};for(const i in e)i==="values"&&typeof e.values=="object"||Et(e[i])||(M6(i,r)||n===!0&&Hs(i)||!t&&!Hs(i)||e.draggable&&i.startsWith("onDrag"))&&(s[i]=e[i]);return s}const D6=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function wl(e){return typeof e!="string"||e.includes("-")?!1:!!(D6.indexOf(e)>-1||/[A-Z]/u.test(e))}function O6(e,t,n,{latestValues:r},s,i=!1,a,o){const l=(a??wl(e)?R6:N6)(t,r,s,e),c=P6(t,typeof e=="string",i,o),f=e!==w.Fragment?{...c,...l,ref:n}:{},{children:h}=t,d=w.useMemo(()=>Et(h)?h.get():h,[h]);return w.createElement(e,{...f,children:d})}function F6({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,s){return{latestValues:B6(n,r,s,e),renderState:t()}}function B6(e,t,n,r){const s={},i=r(e,{});for(const h in i)s[h]=bs(i[h]);let{initial:a,animate:o}=e;const u=ua(e),l=ng(e);t&&l&&!u&&e.inherit!==!1&&(a===void 0&&(a=t.initial),o===void 0&&(o=t.animate));let c=n?n.initial===!1:!1;c=c||a===!1;const f=c?o:a;if(f&&typeof f!="boolean"&&!oa(f)){const h=Array.isArray(f)?f:[f];for(let d=0;d<h.length;d++){const m=fl(e,h[d]);if(m){const{transitionEnd:p,transition:g,...y}=m;for(const v in y){let T=y[v];if(Array.isArray(T)){const C=c?T.length-1:0;T=T[C]}T!==null&&(s[v]=T)}for(const v in p)s[v]=p[v]}}}return s}const Mg=e=>(t,n)=>{const r=w.useContext(la),s=w.useContext(ia),i=()=>F6(e,t,r,s);return n?i():Zu(i)},j6=Mg({scrapeMotionValuesFromProps:Tl,createRenderState:kl}),H6=Mg({scrapeMotionValuesFromProps:gg,createRenderState:Lg}),U6=Symbol.for("motionComponentSymbol");function z6(e,t,n){const r=w.useRef(n);w.useInsertionEffect(()=>{r.current=n});const s=w.useRef(null);return w.useCallback(i=>{var o;i&&((o=e.onMount)==null||o.call(e,i)),t&&(i?t.mount(i):t.unmount());const a=r.current;if(typeof a=="function")if(i){const u=a(i);typeof u=="function"&&(s.current=u)}else s.current?(s.current(),s.current=null):a(i);else a&&(a.current=i)},[t])}const Pg=w.createContext({});function hr(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function V6(e,t,n,r,s,i){var T,C;const{visualElement:a}=w.useContext(la),o=w.useContext(Ig),u=w.useContext(ia),l=w.useContext(vl),c=l.reducedMotion,f=l.skipAnimations,h=w.useRef(null),d=w.useRef(!1);r=r||o.renderer,!h.current&&r&&(h.current=r(e,{visualState:t,parent:a,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:c,skipAnimations:f,isSVG:i}),d.current&&h.current&&(h.current.manuallyAnimateOnMount=!0));const m=h.current,p=w.useContext(Pg);m&&!m.projection&&s&&(m.type==="html"||m.type==="svg")&&q6(h.current,n,s,p);const g=w.useRef(!1);w.useInsertionEffect(()=>{m&&g.current&&m.update(n,u)});const y=n[q0],v=w.useRef(!!y&&typeof window<"u"&&!((T=window.MotionHandoffIsComplete)!=null&&T.call(window,y))&&((C=window.MotionHasOptimisedAnimation)==null?void 0:C.call(window,y)));return Ns(()=>{d.current=!0,m&&(g.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),v.current&&m.animationState&&m.animationState.animateChanges())}),w.useEffect(()=>{m&&(!v.current&&m.animationState&&m.animationState.animateChanges(),v.current&&(queueMicrotask(()=>{var E;(E=window.MotionHandoffMarkAsComplete)==null||E.call(window,y)}),v.current=!1),m.enteringChildren=void 0)}),m}function q6(e,t,n,r){const{layoutId:s,layout:i,drag:a,dragConstraints:o,layoutScroll:u,layoutRoot:l,layoutAnchor:c,layoutCrossfade:f}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Dg(e.parent)),e.projection.setOptions({layoutId:s,layout:i,alwaysMeasureLayout:!!a||o&&hr(o),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,crossfade:f,layoutScroll:u,layoutRoot:l,layoutAnchor:c})}function Dg(e){if(e)return e.options.allowProjection!==!1?e.projection:Dg(e.parent)}function ho(e,{forwardMotionProps:t=!1,type:n}={},r,s){r&&S6(r);const i=n?n==="svg":wl(e),a=i?H6:j6;function o(l,c){let f;const h={...w.useContext(vl),...l,layoutId:$6(l)},{isStatic:d,isValidProp:m}=h,p=C6(l),g=a(l,d);if(!d&&typeof window<"u"){W6();const y=Y6(h);f=y.MeasureLayout,p.visualElement=V6(e,g,h,s,y.ProjectionNode,i)}return x.jsxs(la.Provider,{value:p,children:[f&&p.visualElement?x.jsx(f,{visualElement:p.visualElement,...h}):null,O6(e,l,z6(g,p.visualElement,c),g,d,t,i,m)]})}o.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const u=w.forwardRef(o);return u[U6]=e,u}function $6({layoutId:e}){const t=w.useContext(Qu).id;return t&&e!==void 0?t+"-"+e:e}function W6(e,t){w.useContext(Ig).strict}function Y6(e){const t=Ng(),{drag:n,layout:r}=t;if(!n&&!r)return{};const s={...n,...r};return{MeasureLayout:n!=null&&n.isEnabled(e)||r!=null&&r.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}function G6(e,t){if(typeof Proxy>"u")return ho;const n=new Map,r=(i,a)=>ho(i,a,e,t),s=(i,a)=>r(i,a);return new Proxy(s,{get:(i,a)=>a==="create"?r:(n.has(a)||n.set(a,ho(a,void 0,e,t)),n.get(a))})}const K6=(e,t)=>t.isSVG??wl(e)?new w5(t):new y5(t,{allowProjection:e!==w.Fragment});class X6 extends Cn{constructor(t){super(t),t.animationState||(t.animationState=I5(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();oa(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let Q6=0;class Z6 extends Cn{constructor(){super(...arguments),this.id=Q6++,this.isExitComplete=!1}update(){var i;if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;if(t&&r===!1){if(this.isExitComplete){const{initial:a,custom:o}=this.node.getProps();if(typeof a=="string"||typeof a=="object"&&a!==null&&!Array.isArray(a)){const u=Gn(this.node,a,o);if(u){const{transition:l,transitionEnd:c,...f}=u;for(const h in f)(i=this.node.getValue(h))==null||i.jump(f[h])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const J6={animation:{Feature:X6},exit:{Feature:Z6}};function Pi(e){return{point:{x:e.pageX,y:e.pageY}}}const eR=e=>t=>gl(t)&&e(t,Pi(t));function fi(e,t,n,r){return ki(e,t,eR(n),r)}const Og=({current:e})=>e?e.ownerDocument.defaultView:null,$f=(e,t)=>Math.abs(e-t);function tR(e,t){const n=$f(e.x,t.x),r=$f(e.y,t.y);return Math.sqrt(n**2+r**2)}const Wf=new Set(["auto","scroll"]);class Fg{constructor(t,n,{transformPagePoint:r,contextWindow:s=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=m=>{this.handleScroll(m.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=ns(this.lastRawMoveEventInfo,this.transformPagePoint));const m=mo(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,g=tR(m.offset,{x:0,y:0})>=this.distanceThreshold;if(!p&&!g)return;const{point:y}=m,{timestamp:v}=yt;this.history.push({...y,timestamp:v});const{onStart:T,onMove:C}=this.handlers;p||(T&&T(this.lastMoveEvent,m),this.startEvent=this.lastMoveEvent),C&&C(this.lastMoveEvent,m)},this.handlePointerMove=(m,p)=>{this.lastMoveEvent=m,this.lastRawMoveEventInfo=p,this.lastMoveEventInfo=ns(p,this.transformPagePoint),tt.update(this.updatePoint,!0)},this.handlePointerUp=(m,p)=>{this.end();const{onEnd:g,onSessionEnd:y,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=mo(m.type==="pointercancel"?this.lastMoveEventInfo:ns(p,this.transformPagePoint),this.history);this.startEvent&&g&&g(m,T),y&&y(m,T)},!gl(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=a,this.contextWindow=s||window;const u=Pi(t),l=ns(u,this.transformPagePoint),{point:c}=l,{timestamp:f}=yt;this.history=[{...c,timestamp:f}];const{onSessionStart:h}=n;h&&h(t,mo(l,this.history));const d={passive:!0,capture:!0};this.removeListeners=Ri(fi(this.contextWindow,"pointermove",this.handlePointerMove,d),fi(this.contextWindow,"pointerup",this.handlePointerUp,d),fi(this.contextWindow,"pointercancel",this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(t){let n=t.parentElement;for(;n;){const r=getComputedStyle(n);(Wf.has(r.overflowX)||Wf.has(r.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const r=t===window,s=r?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},i={x:s.x-n.x,y:s.y-n.y};i.x===0&&i.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(t,s),tt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),wn(this.updatePoint)}}function ns(e,t){return t?{point:t(e.point)}:e}function Yf(e,t){return{x:e.x-t.x,y:e.y-t.y}}function mo({point:e},t){return{point:e,delta:Yf(e,Bg(t)),offset:Yf(e,nR(t)),velocity:rR(t,.1)}}function nR(e){return e[0]}function Bg(e){return e[e.length-1]}function rR(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=Bg(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>Dt(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&s.timestamp-r.timestamp>Dt(t)*2&&(r=e[1]);const i=Ut(s.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const a={x:(s.x-r.x)/i,y:(s.y-r.y)/i};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}function iR(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?et(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?et(n,e,r.max):Math.min(e,n)),e}function Gf(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function sR(e,{top:t,left:n,bottom:r,right:s}){return{x:Gf(e.x,n,s),y:Gf(e.y,t,r)}}function Kf(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function aR(e,t){return{x:Kf(e.x,t.x),y:Kf(e.y,t.y)}}function oR(e,t){let n=.5;const r=At(e),s=At(t);return s>r?n=Ei(t.min,t.max-r,e.min):r>s&&(n=Ei(e.min,e.max-s,t.min)),rn(0,1,n)}function uR(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const pu=.35;function lR(e=pu){return e===!1?e=0:e===!0&&(e=pu),{x:Xf(e,"left","right"),y:Xf(e,"top","bottom")}}function Xf(e,t,n){return{min:Qf(e,t),max:Qf(e,n)}}function Qf(e,t){return typeof e=="number"?e:e[t]||0}const cR=new WeakMap;class dR{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=pt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const i=f=>{n&&this.snapToCursor(Pi(f).point),this.stopAnimation()},a=(f,h)=>{const{drag:d,dragPropagation:m,onDragStart:p}=this.getProps();if(d&&!m&&(this.openDragLock&&this.openDragLock(),this.openDragLock=BN(d),!this.openDragLock))return;this.latestPointerEvent=f,this.latestPanInfo=h,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Jt(y=>{let v=this.getAxisMotionValue(y).get()||0;if(nn.test(v)){const{projection:T}=this.visualElement;if(T&&T.layout){const C=T.layout.layoutBox[y];C&&(v=At(C)*(parseFloat(v)/100))}}this.originPoint[y]=v}),p&&tt.update(()=>p(f,h),!1,!0),su(this.visualElement,"transform");const{animationState:g}=this.visualElement;g&&g.setActive("whileDrag",!0)},o=(f,h)=>{this.latestPointerEvent=f,this.latestPanInfo=h;const{dragPropagation:d,dragDirectionLock:m,onDirectionLock:p,onDrag:g}=this.getProps();if(!d&&!this.openDragLock)return;const{offset:y}=h;if(m&&this.currentDirection===null){this.currentDirection=hR(y),this.currentDirection!==null&&p&&p(this.currentDirection);return}this.updateAxis("x",h.point,y),this.updateAxis("y",h.point,y),this.visualElement.render(),g&&tt.update(()=>g(f,h),!1,!0)},u=(f,h)=>{this.latestPointerEvent=f,this.latestPanInfo=h,this.stop(f,h),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>{const{dragSnapToOrigin:f}=this.getProps();(f||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:c}=this.getProps();this.panSession=new Fg(t,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:u,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:r,contextWindow:Og(this.visualElement),element:this.visualElement.current})}stop(t,n){const r=t||this.latestPointerEvent,s=n||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!s||!r)return;const{velocity:a}=s;this.startAnimation(a);const{onDragEnd:o}=this.getProps();o&&tt.postRender(()=>o(r,s))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!rs(t,s,this.currentDirection))return;const i=this.getAxisMotionValue(t);let a=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(a=iR(a,this.constraints[t],this.elastic[t])),i.set(a)}resolveConstraints(){var i;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(i=this.visualElement.projection)==null?void 0:i.layout,s=this.constraints;t&&hr(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=sR(r.layoutBox,t):this.constraints=!1,this.elastic=lR(n),s!==this.constraints&&!hr(t)&&r&&this.constraints&&!this.hasMutatedConstraints&&Jt(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=uR(r.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!hr(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;s.root&&(s.root.scroll=void 0,s.root.updateScroll());const i=h5(r,s.root,this.visualElement.getTransformPagePoint());let a=aR(s.layout.layoutBox,i);if(n){const o=n(c5(a));this.hasMutatedConstraints=!!o,o&&(a=ag(o))}return a}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),u=this.constraints||{},l=Jt(c=>{if(!rs(c,n,this.currentDirection))return;let f=u&&u[c]||{};(a===!0||a===c)&&(f={min:0,max:0});const h=s?200:1e6,d=s?40:1e7,m={type:"inertia",velocity:r?t[c]:0,bounceStiffness:h,bounceDamping:d,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(c,m)});return Promise.all(l).then(o)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return su(this.visualElement,t),r.start(dl(t,r,0,n,this.visualElement,!1))}stopAnimation(){Jt(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps()[n];return s||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){Jt(n=>{const{drag:r}=this.getProps();if(!rs(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,i=this.getAxisMotionValue(n);if(s&&s.layout){const{min:a,max:o}=s.layout.layoutBox[n],u=i.get()||0;i.set(t[n]-et(a,o,.5)+u)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!hr(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};Jt(a=>{const o=this.getAxisMotionValue(a);if(o&&this.constraints!==!1){const u=o.get();s[a]=oR({min:u,max:u},this.constraints[a])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.constraints=!1,this.resolveConstraints(),Jt(a=>{if(!rs(a,t,null))return;const o=this.getAxisMotionValue(a),{min:u,max:l}=this.constraints[a];o.set(et(u,l,s[a]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;cR.set(this.visualElement,this);const t=this.visualElement.current,n=fi(t,"pointerdown",l=>{const{drag:c,dragListener:f=!0}=this.getProps(),h=l.target,d=h!==t&&qN(h);c&&f&&!d&&this.start(l)});let r;const s=()=>{const{dragConstraints:l}=this.getProps();hr(l)&&l.current&&(this.constraints=this.resolveRefConstraints(),r||(r=fR(t,l.current,()=>this.scalePositionWithinConstraints())))},{projection:i}=this.visualElement,a=i.addEventListener("measure",s);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),tt.read(s);const o=ki(window,"resize",()=>this.scalePositionWithinConstraints()),u=i.addEventListener("didUpdate",(({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(Jt(f=>{const h=this.getAxisMotionValue(f);h&&(this.originPoint[f]+=l[f].translate,h.set(h.get()+l[f].translate))}),this.visualElement.render())}));return()=>{o(),n(),a(),u&&u(),r&&r()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:i=!1,dragElastic:a=pu,dragMomentum:o=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:i,dragElastic:a,dragMomentum:o}}}function Zf(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function fR(e,t,n){const r=sf(e,Zf(n)),s=sf(t,Zf(n));return()=>{r(),s()}}function rs(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function hR(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class mR extends Cn{constructor(t){super(t),this.removeGroupControls=zt,this.removeListeners=zt,this.controls=new dR(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||zt}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const po=e=>(t,n)=>{e&&tt.update(()=>e(t,n),!1,!0)};class pR extends Cn{constructor(){super(...arguments),this.removePointerDownListener=zt}onPointerDown(t){this.session=new Fg(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Og(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:po(t),onStart:po(n),onMove:po(r),onEnd:(i,a)=>{delete this.session,s&&tt.postRender(()=>s(i,a))}}}mount(){this.removePointerDownListener=fi(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let go=!1;class gR extends w.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:i}=t;i&&(n.group&&n.group.add(i),r&&r.register&&s&&r.register(i),go&&i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),ys.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:i}=this.props,{projection:a}=r;return a&&(a.isPresent=i,t.layoutDependency!==n&&a.setOptions({...a.options,layoutDependency:n}),go=!0,s||t.layoutDependency!==n||n===void 0||t.isPresent!==i?a.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?a.promote():a.relegate()||tt.postRender(()=>{const o=a.getStack();(!o||!o.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:r}=t;r&&(r.options.layoutAnchor=n,r.root.didUpdate(),pl.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;go=!0,s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function jg(e){const[t,n]=_g(),r=w.useContext(Qu);return x.jsx(gR,{...e,layoutGroup:r,switchLayoutGroup:w.useContext(Pg),isPresent:t,safeToRemove:n})}const xR={pan:{Feature:pR},drag:{Feature:mR,ProjectionNode:Cg,MeasureLayout:jg}};function Jf(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,i=r[s];i&&tt.postRender(()=>i(t,Pi(t)))}class bR extends Cn{mount(){const{current:t}=this.node;t&&(this.unmount=HN(t,(n,r)=>(Jf(this.node,r,"Start"),s=>Jf(this.node,s,"End"))))}unmount(){}}class yR extends Cn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Ri(ki(this.node.current,"focus",()=>this.onFocus()),ki(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function eh(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),i=r[s];i&&tt.postRender(()=>i(t,Pi(t)))}class ER extends Cn{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:r}=this.node.props;this.unmount=WN(t,(s,i)=>(eh(this.node,i,"Start"),(a,{success:o})=>eh(this.node,a,o?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:(r==null?void 0:r.tap)===!1})}unmount(){}}const gu=new WeakMap,xo=new WeakMap,TR=e=>{const t=gu.get(e.target);t&&t(e)},vR=e=>{e.forEach(TR)};function kR({root:e,...t}){const n=e||document;xo.has(n)||xo.set(n,{});const r=xo.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(vR,{root:e,...t})),r[s]}function wR(e,t,n){const r=kR(t);return gu.set(e,n),r.observe(e),()=>{gu.delete(e),r.unobserve(e)}}const SR={some:0,all:1};class AR extends Cn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var u;(u=this.stopObserver)==null||u.call(this);const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:i}=t,a={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:SR[s]},o=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,i&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:f,onViewportLeave:h}=this.node.getProps(),d=c?f:h;d&&d(l)};this.stopObserver=wR(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(CR(t,n))&&this.startObserver()}unmount(){var t;(t=this.stopObserver)==null||t.call(this),this.hasEnteredView=!1,this.isInView=!1}}function CR({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const _R={inView:{Feature:AR},tap:{Feature:ER},focus:{Feature:yR},hover:{Feature:bR}},IR={layout:{ProjectionNode:Cg,MeasureLayout:jg}},NR={...J6,..._R,...xR,...IR},RR=G6(NR,K6),LR=RR;function MR(e){switch(e){case"correct":return{Icon:Tu,color:"var(--brand)"};case"wrong":return{Icon:ah,color:"var(--warning)"};case"mastery":case"level-up":return{Icon:H1,color:"var(--gold)"};case"unlock":return{Icon:Ul,color:"var(--brand)"};case"streak":return{Icon:uh,color:"var(--review)"};case"energy-full":return{Icon:To,color:"var(--brand)"};case"exam-pass":return{Icon:L1,color:"var(--exam)"};case"lesson-complete":return{Icon:px,color:"var(--gold)"};default:return{Icon:Ul,color:"var(--brand)"}}}function PR(){const e=bu(),t=w.useRef(null),n=w.useRef([]),r=w.useRef(0),[s,i]=w.useState(null);return w.useEffect(()=>{if(e)return;const a=t.current;if(!a)return;const o=a.getContext("2d");if(!o)return;const u=()=>{const h=Math.min(window.devicePixelRatio||1,2);a.width=window.innerWidth*h,a.height=window.innerHeight*h,a.style.width=window.innerWidth+"px",a.style.height=window.innerHeight+"px",o.setTransform(h,0,0,h,0,0)};u(),window.addEventListener("resize",u);const l=()=>{o.clearRect(0,0,window.innerWidth,window.innerHeight);const h=n.current;for(let d=h.length-1;d>=0;d--){const m=h[d];if(m.x+=m.vx,m.y+=m.vy,m.vy+=.25,m.vx*=.99,m.rot+=m.vr,m.life--,m.life<=0){h.splice(d,1);continue}const p=Math.min(1,m.life/m.maxLife);o.save(),o.globalAlpha=p,o.translate(m.x,m.y),o.rotate(m.rot),o.fillStyle=m.color,m.shape==="circle"?(o.beginPath(),o.arc(0,0,m.size,0,Math.PI*2),o.fill()):o.fillRect(-m.size/2,-m.size/2,m.size,m.size*.6),o.restore()}r.current=h.length>0?requestAnimationFrame(l):0},f=yo(h=>{var y,v;const d=T1(h.kind),m=Math.round(d.particles*(h.intensity??1)),p=((y=h.origin)==null?void 0:y.x)??window.innerWidth/2,g=((v=h.origin)==null?void 0:v.y)??window.innerHeight/2;for(let T=0;T<m;T++){const C=Math.PI*2*T/m+Math.random()*.3,E=3+Math.random()*6,k=d.durationMs/16*(.7+Math.random()*.5);n.current.push({x:p,y:g,vx:Math.cos(C)*E,vy:Math.sin(C)*E-2,life:k,maxLife:k,color:d.colors[T%d.colors.length],size:4+Math.random()*5,rot:Math.random()*Math.PI,vr:(Math.random()-.5)*.3,shape:Math.random()<.5?"rect":"circle"})}r.current===0&&(r.current=requestAnimationFrame(l))});return()=>{f(),window.removeEventListener("resize",u),r.current&&cancelAnimationFrame(r.current),r.current=0,n.current=[]}},[e]),w.useEffect(()=>{if(!e)return;let a=0;return yo(u=>{const l=++a;i({kind:u.kind,id:l}),setTimeout(()=>{l===a&&i(null)},600)})},[e]),e?x.jsx(k6,{children:s&&(()=>{const{Icon:a,color:o}=MR(s.kind);return x.jsx(LR.div,{className:"fixed inset-0 pointer-events-none z-[60] flex items-center justify-center","aria-hidden":"true",initial:{opacity:0},animate:{opacity:.45},exit:{opacity:0},transition:{duration:.2},children:x.jsx(a,{className:"w-24 h-24",color:o,strokeWidth:1.5})},s.id)})()}):x.jsx("canvas",{ref:t,className:"fixed inset-0 pointer-events-none z-[60]","aria-hidden":"true"})}const DR=w.lazy(()=>Se(()=>import("./SettingsView-ClaF3_aU.js"),__vite__mapDeps([34,1,2]),import.meta.url).then(e=>({default:e.SettingsView}))),OR=w.lazy(()=>Se(()=>import("./ExamView-BCVCCOa3.js"),__vite__mapDeps([35,1,2,31,30]),import.meta.url).then(e=>({default:e.ExamView}))),FR=w.lazy(()=>Se(()=>import("./CommandPalette-DOGHfdG5.js"),__vite__mapDeps([36,1,2]),import.meta.url).then(e=>({default:e.CommandPalette}))),th=["direct","guide","practice"];function BR(){const e=Ge(),[t,n]=w.useState([]),[r,s]=w.useState([]),[i,a]=w.useState({}),[o,u]=w.useState(null),[l,c]=w.useState(null),[f,h]=w.useState(null),[d,m]=w.useState(null),p=w.useCallback(W=>{m(W instanceof Error?W.message:String(W)),console.error(W)},[]),[g,y]=w.useState([]),[v,T]=w.useState(null),[C,E]=w.useState([]),[k,_]=w.useState(null),[A,I]=w.useState("map"),[S,M]=w.useState(null),[N,j]=w.useState(new Set),[P,L]=w.useState(null),F=w.useRef({active:!1,terminate:null}),[V,B]=w.useState({open:!1,pendingAction:null}),q=w.useRef(null),[R,$]=w.useState(null),[K,D]=w.useState(!1),[Z,oe]=w.useState(!0),[z,J]=w.useState(!0),X=M_(),[ce,he]=w.useState("notebook"),[re,ne]=w.useState("chat"),xe=w.useRef(re);xe.current=re;const ve=w.useRef(X);w.useEffect(()=>{ve.current!==X&&(X===1?(oe(!0),J(!0)):X===2&&ve.current===3&&he(__(xe.current)),ve.current=X)},[X]);const Le=X===3?re==="rail":X===2?ce==="rail":Z,Be=X===3?re==="notebook":X===2?ce==="notebook":z,Ee=X!==3||re==="chat",Oe=()=>{X===1?oe(W=>!W):X===2?he(W=>W==="rail"?"notebook":"rail"):ne(W=>W==="rail"?"chat":"rail")},te=()=>{X===1?J(W=>!W):X===2?he(W=>W==="notebook"?"rail":"notebook"):ne(W=>W==="notebook"?"chat":"notebook")},Ie=w.useRef(null),be=W=>{var fe,we;if(X!==3)return;const ee=W.touches[0];Ie.current={x:ee.clientX,y:ee.clientY,multi:W.touches.length>1,noswipe:!!((we=(fe=W.target).closest)!=null&&we.call(fe,"[data-noswipe]"))}},ze=W=>{const ee=Ie.current;if(Ie.current=null,!ee||ee.multi||ee.noswipe||X!==3)return;const fe=W.changedTouches[0],we=I_(xe.current,fe.clientX-ee.x,fe.clientY-ee.y);we&&ne(we)},[rt,Me]=w.useState(!1),[Xe,G]=w.useState(null),[se,pe]=w.useState([]),de=k_(f,P),Ne=vh(),_e=E_(de.activeId,Ne);w.useEffect(()=>{v1(_e.streaming)},[_e.streaming]);const[Te,Pe]=w.useState(""),Ve=w.useCallback(W=>{Pe(W)},[]),We=w.useCallback((W,ee,fe)=>{if(W.type==="content"){if($("content"),fe){const we=Ze=>{document.querySelector(`mark[data-note-id="${fe}"]`)?window.dispatchEvent(new CustomEvent("lookatstudy-jump-to-note",{detail:fe})):Ze>0&&setTimeout(()=>we(Ze-1),150)};setTimeout(()=>we(10),100)}}else if(W.threadId!==de.activeId&&de.setActiveId(W.threadId),fe){const we=Ze=>{document.querySelector(`mark[data-note-id="${fe}"]`)?window.dispatchEvent(new CustomEvent("lookatstudy-jump-to-chat-note",{detail:fe})):Ze>0&&setTimeout(()=>we(Ze-1),150)};setTimeout(()=>we(10),120)}},[de]),[ye,Ye]=w.useState(null);w.useEffect(()=>{if(!P){Ye(null);return}let W=!1;return le.getNodeSummary(P,Ne).then(ee=>{W||Ye(ee)}).catch(()=>{W||Ye(null)}),()=>{W=!0}},[P,Ne]);const Fe=w.useMemo(()=>r.find(W=>W.id===P)??null,[r,P]),Jn=w.useMemo(()=>se.map(W=>({...W,label:e(`starter.${W.key}.label`),hint:e(`starter.${W.key}.hint`),message:e(`starter.${W.key}.message`,{title:(Fe==null?void 0:Fe.title)??""})})),[se,Fe,e]),Xt=w.useRef(null),Mr=w.useCallback(()=>{var W;Fe&&((W=Xt.current)==null||W.call(Xt,e("chat.action.startLearningPrompt",{title:Fe.title}),e("chat.action.startLearning",{title:Fe.title})))},[Fe,e]),Vt=w.useCallback(async()=>{try{const[W,ee,fe,we,Ze,Rt]=await Promise.all([le.listCourses(),le.getStreak(),le.listSouls(),le.getActiveSoul(),le.getXpStatus(),le.getDueReviews()]);n(W),u(ee),E(fe),c(Ze),_(we),j(new Set(Rt)),f&&!W.some(zg=>zg.id===f)&&(h(null),L(null),s([]),a({}),M(null),y([]),T(null))}catch(W){m(W instanceof Error?W.message:String(W))}},[f]);w.useEffect(()=>{Vt()},[Vt]);const er=w.useCallback(async()=>{try{G(await le.isAgentReady())}catch{G({ready:!1,missing:e("error.checkReadyFailed")})}},[e]);w.useEffect(()=>{er();const W=()=>er();return window.addEventListener("llm-config-changed",W),()=>window.removeEventListener("llm-config-changed",W)},[er]);const Pr=w.useRef(0),Dr=w.useRef(0);w.useEffect(()=>{Pr.current=(l==null?void 0:l.todayXp)??0},[l]),w.useEffect(()=>{Dr.current=(o==null?void 0:o.currentStreak)??0},[o]);const _n=w.useCallback(async()=>{const W=r.filter(we=>we.type==="lesson"||we.type==="exam"),ee=await Promise.all(W.map(async we=>{const Ze=await le.getProgress(we.id);return[we.id,Ze]})),fe={};for(const[we,Ze]of ee)Ze&&(fe[we]=Ze);a(fe)},[r]);w.useEffect(()=>le.on("state:changed",ee=>{ee==="xp"?le.getXpStatus().then(fe=>{c(fe),Pr.current<100&&fe.todayXp>=100&&is("energy-full")}).catch(()=>{}):ee==="streak"?le.getStreak().then(fe=>{u(fe),fe.currentStreak>Dr.current&&is("streak")}).catch(()=>{}):ee==="mastery"&&(is("mastery"),Vt(),_n())}),[Vt,_n]),w.useEffect(()=>{f&&(le.getCourseLanguages(f).then(y).catch(()=>y([])),le.getCourseLanguage(f).then(T).catch(()=>T(null)))},[f]),w.useEffect(()=>{f&&(le.getCourseTree(f,v??void 0).then(async W=>{s(W);const ee=W.filter(Ze=>Ze.type==="lesson"||Ze.type==="exam"),fe=await Promise.all(ee.map(async Ze=>{const Rt=await le.getProgress(Ze.id);return[Ze.id,Rt]})),we={};for(const[Ze,Rt]of fe)Rt&&(we[Ze]=Rt);a(we)}).catch(p),le.getDashboard(f).then(M).catch(p))},[f,v,p]),w.useEffect(()=>{if(!P){pe([]);return}le.getStarterPrompts(P).then(pe).catch(()=>pe([]))},[P]),w.useEffect(()=>{const W=ee=>{if(ee.key==="Escape"&&de.activeId&&(le.abortAgentChatThread(de.activeId).catch(()=>{}),D(!1),Me(!1)),(ee.ctrlKey||ee.metaKey)&&ee.key==="k"&&(ee.preventDefault(),Me(fe=>!fe)),(ee.ctrlKey||ee.metaKey)&&ee.key==="b"&&(ee.preventDefault(),Oe()),(ee.ctrlKey||ee.metaKey)&&ee.key==="Tab"){if(ee.preventDefault(),F.current.active)return;const fe=de.threads;if(fe.length>1){const we=fe.findIndex(Rt=>Rt.id===de.activeId),Ze=ee.shiftKey?(we-1+fe.length)%fe.length:(we+1)%fe.length;de.setActiveId(fe[Ze].id)}}(!ee.target||!ee.target.matches("input, textarea, select"))&&(ee.key==="1"&&I("map"),ee.key==="2"&&I("import"),ee.key==="s"&&(ee.ctrlKey||ee.metaKey)&&(ee.preventDefault(),D(!0)))};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[P]);const tr=w.useCallback(async W=>{var ee;try{if(W.type==="exam"){L(W.id),$("content");return}if(((ee=i[W.id])==null?void 0:ee.status)==="locked"){L(null);return}await le.markNodeAttempted(W.id);const fe=await le.getStreak();await _n(),u(fe),L(W.id),$("content"),fa(!1)}catch(fe){p(fe)}},[i,_n,p]),nr=w.useCallback(W=>{if(F.current.active){B({open:!0,pendingAction:W});return}W()},[]),ke=w.useCallback(W=>{if(F.current.active&&W.id!==P){B({open:!0,pendingAction:()=>void tr(W)});return}tr(W)},[tr,P]),$e=w.useCallback(W=>{F.current=W},[]),Qe=w.useCallback(async()=>{const W=V.pendingAction;B({open:!1,pendingAction:null});const ee=F.current;if(F.current={active:!1,terminate:null},ee.active&&ee.terminate)try{await ee.terminate()}catch{}W==null||W()},[V.pendingAction]);zs(q,V.open),w.useEffect(()=>{if(!V.open)return;const W=ee=>{ee.key==="Escape"&&B({open:!1,pendingAction:null})};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[V.open]);const it=async W=>{try{await le.setActiveSoul(W),_(W)}catch(ee){p(ee)}},ct=w.useCallback(async(W,ee,fe)=>{try{await le.applyProposal(W),_e.markProposalStatus(ee,fe,!0)}catch(we){p(we)}},[_e,p]),Ce=w.useCallback(async(W,ee,fe)=>{try{await le.rejectProposal(W),_e.markProposalStatus(ee,fe,!1)}catch(we){p(we)}},[_e,p]),De=t.find(W=>W.id===f),He=w.useMemo(()=>{const W=new Set(r.map(ee=>ee.id));return new Set([...N].filter(ee=>W.has(ee)))},[N,r]),ot=He.size,Ke=w.useMemo(()=>r.filter(W=>W.type==="section").sort((W,ee)=>W.orderIdx-ee.orderIdx),[r]),dt=w.useMemo(()=>{const W=th.map(fe=>C.find(we=>we.name===fe)).filter(fe=>!!fe),ee=C.filter(fe=>!th.includes(fe.name));return[...W,...ee]},[C]),st=E3(f),hn=v3(),ut=Gu();w.useEffect(()=>le.on("exam:status",ee=>{if(ee.status!=="ready"||ee.nodeId===P)return;const fe=r.find(we=>we.id===ee.nodeId);fe&&ut.show(e("exam.ready.toast",{title:fe.title}),{duration:4e3})}),[P,r,ut,e]);const Di=w.useCallback(async W=>{const ee=t.find(fe=>fe.id===W);try{await le.deleteCourse(W),ut.show(e("import.deleted",{title:(ee==null?void 0:ee.title)??W}),{duration:3e3}),Vt()}catch(fe){p(fe)}},[t,Vt,p,ut,e]),rr=w.useCallback(async(W,ee,fe)=>{if(!W.trim()||_e.streaming)return;if(!de.activeId){const Ze=await de.ensureThreadForSend(W,ee);if(Ze){_e.send(W,Ze,ee,fe);return}ut.show(e("toast.threadCreateFailed"));return}const we=de.activeThread;we&&!we.title&&de.update(we.id,{title:(ee??W).trim()}),_e.send(W,void 0,ee,fe)},[_e,de,ut,e]),Oi=w.useRef(_e.streaming);Oi.current=_e.streaming;const bt=w.useCallback(W=>{const ee=v_(W,e),fe=T_(W,e),we=Ze=>{var Rt;if(!Oi.current){(Rt=Xt.current)==null||Rt.call(Xt,ee,fe);return}Ze>0&&setTimeout(()=>we(Ze-1),2e3)};we(10)},[e]);Xt.current=rr;const ir=new Set(["concept_map","diagram","compare_table","code_walkthrough"]),Qt=w.useMemo(()=>{const W=wd(_e.messages).filter(fe=>{var we;return ir.has(((we=fe.output)==null?void 0:we.artifactType)??"")});if(W.length)return W[W.length-1];const ee=st.items.filter(fe=>ir.has(fe.artifactType)).map(fe=>{try{return{id:fe.id,toolName:fe.artifactType,output:JSON.parse(fe.data)}}catch{return null}}).filter(fe=>fe!==null);return ee.length?ee[ee.length-1]:null},[_e.messages,st.items]),sr=w.useRef(new Set);w.useEffect(()=>{!Qt||sr.current.has(Qt.id)||(sr.current.add(Qt.id),_e.streaming&&$("board"))},[Qt,_e.streaming]);const Or=w.useMemo(()=>_e.messages.reduce((W,ee)=>W+ee.parts.reduce((fe,we)=>we.type==="text"?fe+bh(we.text):fe,0),0),[_e.messages]),Ct=w.useRef(!1);w.useEffect(()=>{ot>0&&!Ct.current&&(Ct.current=!0,ut.show(e("review.nudge",{n:ot}),{duration:4e3}))},[ot,ut,e]);const In=w.useMemo(()=>wd(_e.messages),[_e.messages]),Fi=w.useRef(new Set);w.useEffect(()=>{for(const W of In){const ee=W.output;if(!ee||!ee.artifactType)continue;const fe=`${ee.artifactType}:${JSON.stringify(ee)}`;Fi.current.has(fe)||(Fi.current.add(fe),st.save({nodeId:P,artifactType:ee.artifactType,title:ee.title??null,data:ee}),ut.show(e("toast.artifactSaved"),{duration:3e3}))}},[In,st,P,ut,e]),w.useEffect(()=>{A!=="map"&&$(null)},[A]);const[Ug,ca]=w.useState(!1),[da,fa]=w.useState(!1),Sl=(Fe==null?void 0:Fe.type)==="exam";return w.useEffect(()=>{Sl&&window.dispatchEvent(new CustomEvent("companion-exam-enter"))},[Sl]),w.useEffect(()=>{k1(da)},[da]),x.jsxs("div",{className:"h-[var(--app-height,100vh)] flex flex-col bg-surface-1 text-neutral-900 dark:text-neutral-100 overflow-hidden",children:[x.jsx(HR,{streak:o,xp:l,fontSize:hn.size,onFontBump:hn.bump,onOpenSettings:()=>D(!0),leftVisible:Le,rightVisible:Be,onToggleLeft:Oe,onToggleRight:te,tier:X,bottomBar:X===3?x.jsx("nav",{className:"inline-flex items-center gap-0.5 p-0.5 rounded-lg bg-ink/5 ring-1 ring-inset ring-[var(--border)]","data-testid":"t3-pane-switcher",role:"tablist","aria-label":e("pane.switcher"),children:[{k:"rail",icon:dh,label:e("pane.map"),testid:"t3-btn-rail"},{k:"chat",icon:Z1,label:e("pane.chat"),testid:"t3-btn-chat"},{k:"notebook",icon:rx,label:e("pane.notes"),testid:"t3-btn-notebook"}].map(({k:W,icon:ee,label:fe,testid:we})=>x.jsx("button",{role:"tab","aria-selected":re===W,"aria-label":fe,"data-testid":we,"data-tooltip":fe,onClick:()=>ne(W),className:`w-8 h-7 flex items-center justify-center rounded-md transition-colors ${re===W?"bg-brand/20 text-brand":"text-ink-muted active:bg-ink/10"}`,children:x.jsx(ee,{className:"w-4 h-4"})},W))}):void 0}),d&&x.jsx(VR,{message:d,onClose:()=>m(null)}),x.jsxs("div",{className:"flex-1 flex min-h-0 min-w-0",onTouchStart:be,onTouchEnd:ze,children:[Le&&x.jsx(gb,{fullWidth:X===3,view:A,onViewChange:I,courseTitle:(De==null?void 0:De.title)??null,courseId:f,courses:t,sections:Ke,tree:r,progressMap:i,selectedNodeId:P,dueCount:ot,dueNodeIds:He,overallMastery:(S==null?void 0:S.overallMastery)??0,streak:(o==null?void 0:o.currentStreak)??0,streaming:_e.streamingThreadIds.length>0,streamingNodeIds:_e.streamingNodeIds,onJumpNode:W=>{const ee=r.find(fe=>fe.id===W);ee&&ke(ee),X===3&&ne("chat")},onOpenReview:()=>ca(!0),onSelectCourse:W=>nr(()=>{h(W),Vt()}),onDeleteCourse:W=>nr(()=>{Di(W)}),onCoursesChanged:()=>{Vt()},availableLanguages:g,currentLocale:v,onLocaleChange:async W=>{f&&(await le.setCourseLanguage(f,W),T(W))}}),x.jsxs(x.Fragment,{children:[Ee&&x.jsx("div",{className:"relative flex flex-col h-full bg-surface-1 shrink-0 min-w-0 motion-safe:transition-[width] motion-safe:duration-200",style:X===3?{flex:1}:Be?{width:"clamp(480px, 36vw, 800px)"}:{flex:1},"data-testid":"chat-panel",children:f?(Fe==null?void 0:Fe.type)==="exam"?x.jsx(w.Suspense,{fallback:null,children:x.jsx(OR,{examNode:Fe,locale:Ne,onSessionChange:$e,paused:V.open,onExamCompleted:()=>{le.getProgress(Fe.id).then(W=>{W&&a(ee=>({...ee,[Fe.id]:W}))})}})}):x.jsxs(x.Fragment,{children:[x.jsx(w_,{threads:de.threads,activeThread:de.activeThread,focusNodeTitle:(Fe==null?void 0:Fe.title)??null,streamingThreadIds:_e.streamingThreadIds,onPickThread:W=>{de.setActiveId(W)},onCreate:()=>{de.create({title:null}),ut.show(e("toast.threadCreated"))},onRename:(W,ee)=>{de.update(W,{title:ee}),ut.show(e("toast.threadRenamed"))},onArchive:W=>{de.update(W,{status:"archived"}),ut.show(e("toast.threadArchived"),{duration:5e3,action:{label:e("action.undo"),onClick:()=>de.update(W,{status:"active"})}})},onDelete:W=>{const ee=de.removeWithUndo(W);ee&&(ut.show(`${e("toast.threadDeleted")}${ee.title?`「${ee.title}」`:""}`,{duration:5e3,action:{label:e("action.undo"),onClick:()=>{de.restore(ee),ut.show(e("toast.restored"))}}}),setTimeout(()=>{le.threadDelete(ee.id).catch(()=>{})},5500))}}),x.jsx(C3,{messages:_e.messages,streaming:_e.streaming,onApplyProposal:ct,onRejectProposal:Ce,summary:ye,onStartLearning:Xe!=null&&Xe.ready?Mr:void 0,agentReady:(Xe==null?void 0:Xe.ready)??!1,onGotoSettings:()=>D(!0),hasNode:!!Fe,selectedNodeId:P,threadId:de.activeId,onPickQuizAction:W=>{rr(W)},onQuizCompleted:bt,cardMode:X===3,chatNotes:st.items.filter(W=>W.artifactType==="user_note"&&W.sourceAnchor),onSaveChatNote:(W,ee,fe,we)=>{!Fe||!de.activeId||(st.saveUserNote({nodeId:Fe.id,text:W,sourceType:"chat",sourceAnchor:{type:"chat",threadId:de.activeId,msgId:ee,startOffset:fe,endOffset:we}}),ut.show(e("toast.noteSaved"),{duration:2e3}))}}),x.jsx(Q3,{nodeId:P,agentReady:(Xe==null?void 0:Xe.ready)??!1,streaming:_e.streaming,souls:dt,activeSoul:k,starterPrompts:_e.messages.length>0?Jn:[],onPickSoul:it,onSend:rr,onStop:_e.stop,onLogFriction:P?(W,ee)=>{le.logFriction(P,W,ee),ut.show(e("chat.friction.saved"),{duration:2500})}:void 0,onGotoSettings:()=>D(!0),insertText:Te,historyTokens:Or})]}):x.jsx("div",{className:"flex-1 flex items-center justify-center px-6","data-testid":"chat-no-course",children:x.jsxs("div",{className:"text-center max-w-sm",children:[x.jsx("div",{className:"text-5xl mb-4 opacity-30",children:"📚"}),x.jsx("div",{className:"text-title font-bold text-ink mb-2",children:e("course.empty.title")}),x.jsx("div",{className:"text-body text-ink-muted leading-relaxed",children:e("course.empty.desc")})]})})}),Be&&x.jsx("main",{className:X===3?"flex-1 min-w-0 bg-surface-2":"flex-1 min-w-[440px] bg-surface-2","data-testid":X===3?"notebook-pane-full":void 0,children:x.jsx(p3,{selectedNode:Fe,items:st.items,loading:st.loading,forceTab:R,canvasArtifact:Qt,onUserTabChange:()=>$(null),onRemove:W=>{st.remove(W),ut.show(e("toast.noteDeleted"))},onTogglePin:W=>{st.togglePin(W)},onRecordQuizResult:(W,ee)=>{st.recordQuizResult(W,ee)},onUpdateNoteComment:(W,ee)=>{st.updateUserNoteComment(W,ee)},onSaveContentNote:(W,ee)=>{Fe&&(st.saveUserNote({nodeId:Fe.id,text:W,sourceType:"content",sourceAnchor:ee}),ut.show(e("toast.noteSaved"),{duration:2e3}))},onJumpToSource:We,onQuoteToChat:Ve,locale:v,isReviewing:da,onReviewDone:()=>fa(!1)})})]})]}),K&&x.jsx(UR,{onClose:()=>D(!1)}),Ug&&x.jsx(zR,{onClose:()=>ca(!1),tree:r,dashboard:S,progressMap:i,onPickNode:W=>{nr(()=>{L(W),$("content"),ca(!1),fa(!0)})}}),V.open&&x.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50","data-testid":"exam-leave-modal",children:x.jsxs("div",{ref:q,className:"w-[min(400px,90vw)] rounded-2xl bg-surface-0 p-6 shadow-elevated border border-warning/40",role:"dialog","aria-modal":"true","aria-label":e("exam.leave.title"),children:[x.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[x.jsx(ku,{className:"w-5 h-5 text-warning shrink-0"}),x.jsx("span",{className:"text-title font-bold text-ink",children:e("exam.leave.title")})]}),x.jsx("div",{className:"text-body text-ink-muted mb-5 leading-relaxed",children:e("exam.leave.message")}),x.jsxs("div",{className:"flex justify-end gap-2",children:[x.jsx("button",{className:"btn-3d-neutral px-4 py-1.5 text-body",onClick:()=>B({open:!1,pendingAction:null}),"data-testid":"exam-leave-cancel",children:e("exam.leave.cancel")}),x.jsx("button",{className:"btn-3d-brand px-4 py-1.5 text-body",style:{background:"var(--warning)",boxShadow:"0 3px 0 0 var(--warning-dark)"},onClick:()=>void Qe(),"data-testid":"exam-leave-confirm",children:e("exam.leave.confirm")})]})]})}),rt&&x.jsx(w.Suspense,{fallback:null,children:x.jsx(FR,{onClose:()=>Me(!1),onPick:W=>{Me(!1),jR(W)},hasNode:!!P})}),x.jsx(Cb,{}),x.jsx(PR,{}),x.jsx(f_,{courseId:f})]})}function jR(e){window.dispatchEvent(new CustomEvent("lookatstudy-command",{detail:e}))}function HR({streak:e,xp:t,fontSize:n,onFontBump:r,onOpenSettings:s,leftVisible:i,rightVisible:a,onToggleLeft:o,onToggleRight:u,tier:l,bottomBar:c}){const f=Ge();return c?x.jsx("header",{className:"app-header shrink-0",children:x.jsxs("div",{className:"flex items-center h-12 px-4",children:[x.jsx("div",{className:"flex-1 flex items-center min-w-0",children:t&&x.jsxs("div",{className:"flex items-center gap-1 shrink-0","data-testid":"xp-bar",title:f("header.energy"),children:[x.jsx(To,{className:`w-3.5 h-3.5 text-brand ${t.todayXp>=100?"energy-breathe":""}`,fill:t.todayXp>=100?"currentColor":"none","aria-hidden":"true"}),x.jsx("span",{className:"text-label font-bold tabular-nums text-brand",children:t.todayXp})]})}),c,x.jsx("div",{className:"flex-1 flex items-center justify-end",children:x.jsx("button",{onClick:s,"data-testid":"header-settings","aria-label":f("header.settings"),className:"text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-300 w-8 h-8 flex items-center justify-center rounded-lg hover:bg-neutral-200 dark:hover:bg-neutral-800/50 transition-colors",title:f("header.settings"),children:x.jsx(Es,{className:"w-4 h-4"})})})]})}):x.jsx("header",{className:"app-header shrink-0 flex flex-col",children:x.jsxs("div",{className:"flex items-center pt-2.5 pb-3 px-6 justify-between",children:[x.jsx("div",{className:"flex items-center gap-2 min-w-0",children:x.jsxs("h1",{className:"text-body font-extrabold tracking-tight text-neutral-900 dark:text-neutral-100 select-none min-w-0 truncate",children:["Lookat",x.jsx("span",{className:"text-brand",children:"Study"})]})}),x.jsxs("div",{className:"flex items-center gap-3",children:[l!==3&&x.jsxs("div",{className:"flex items-center gap-0.5",children:[x.jsx("button",{onClick:o,"data-testid":"layout-toggle-left",className:`w-7 h-7 flex items-center justify-center rounded-md transition-colors ${i?"text-neutral-500 hover:bg-neutral-200 dark:text-neutral-300 dark:hover:bg-neutral-800":"text-neutral-600 bg-neutral-200 dark:bg-neutral-800"}`,title:f("header.toggleLeft"),children:x.jsx(ex,{className:"w-4 h-4"})}),x.jsx("button",{onClick:u,"data-testid":"layout-toggle-right",className:`w-7 h-7 flex items-center justify-center rounded-md transition-colors ${a?"text-neutral-500 hover:bg-neutral-200 dark:text-neutral-300 dark:hover:bg-neutral-800":"text-neutral-600 bg-neutral-200 dark:bg-neutral-800"}`,title:f("header.toggleRight"),children:x.jsx(tx,{className:"w-4 h-4"})})]}),l!==3&&x.jsxs("div",{className:"flex items-center gap-0.5","data-testid":"font-size-control",children:[x.jsx("button",{onClick:()=>r("down"),disabled:n==="small","data-testid":"font-smaller",className:"text-label w-7 h-7 flex items-center justify-center rounded-md text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 hover:bg-ink/5 disabled:opacity-20 disabled:cursor-not-allowed transition-colors",title:f("header.font.smaller"),children:"A-"}),x.jsx("button",{onClick:()=>r("up"),disabled:n==="large","data-testid":"font-larger",className:"text-body w-7 h-7 flex items-center justify-center rounded-md text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 hover:bg-ink/5 disabled:opacity-20 disabled:cursor-not-allowed transition-colors",title:f("header.font.larger"),children:"A+"})]}),t&&x.jsxs("div",{className:"flex items-center gap-1.5","data-testid":"xp-bar",title:f("header.energy"),children:[x.jsx(To,{className:`w-3.5 h-3.5 text-brand ${t.todayXp>=100?"energy-breathe":""}`,fill:t.todayXp>=100?"currentColor":"none","aria-hidden":"true"}),x.jsx("div",{className:"w-16 h-2 bg-neutral-200 dark:bg-neutral-800 rounded-full overflow-hidden",children:x.jsx("div",{className:"h-full rounded-full bg-brand transition-all duration-500",style:{width:`${Math.min(100,Math.max(3,t.todayXp))}%`}})}),x.jsx("span",{className:"text-label font-bold tabular-nums text-brand",children:t.todayXp})]}),t&&x.jsx("div",{className:"flex items-center gap-1 px-2 py-0.5 rounded-full bg-brand/10","data-testid":"level-badge",title:f("header.level.title"),children:x.jsxs("span",{className:"text-label font-bold text-brand",children:["Lv.",t.level]})}),e&&x.jsx(qR,{streak:e}),x.jsx("button",{onClick:s,"data-testid":"header-settings",className:"text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-300 w-8 h-8 flex items-center justify-center rounded-lg hover:bg-neutral-200 dark:hover:bg-neutral-800/50 transition-colors",title:f("header.settings"),children:x.jsx(Es,{className:"w-4 h-4"})})]})]})})}function UR({onClose:e}){const t=Ge(),n=w.useRef(null);return zs(n,!0),x.jsxs("div",{className:"fixed inset-0 z-50 flex justify-end","data-testid":"settings-drawer",children:[x.jsx("div",{className:"absolute inset-0 bg-black/40",onClick:e}),x.jsxs("div",{ref:n,role:"dialog","aria-modal":"true","aria-label":t("settings.title"),className:"relative w-full max-w-lg h-full bg-surface-0 border-l border-[var(--border)] shadow-elevated flex flex-col",children:[x.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)] shrink-0",children:[x.jsx("h2",{className:"text-body font-bold",children:t("settings.title")}),x.jsx("button",{onClick:e,"data-testid":"settings-close","aria-label":t("action.close"),className:"text-ink-muted hover:text-ink-strong w-8 h-8 flex items-center justify-center rounded-lg hover:bg-surface-3",children:"✕"})]}),x.jsx("div",{className:"flex-1 overflow-y-auto",children:x.jsx(w.Suspense,{fallback:null,children:x.jsx(DR,{})})})]})]})}function zR({onClose:e,tree:t,onPickNode:n,dashboard:r,progressMap:s}){const i=Ge(),a=w.useRef(null);zs(a,!0);const[o,u]=w.useState([]);w.useEffect(()=>{le.getAllSrsItems().then(T=>u(T)).catch(()=>u([]))},[]);const l=w.useMemo(()=>new Map(o.map(T=>[T.nodeId,T])),[o]),c=w.useMemo(()=>{const T=new Map(t.map(E=>[E.id,E])),C=o.filter(E=>T.has(E.nodeId));return{overdue:C.filter(E=>E.overdue),short:C.filter(E=>!E.overdue&&E.intervalDays>0&&E.intervalDays<=7),long:C.filter(E=>!E.overdue&&E.intervalDays>7),inactive:C.filter(E=>E.repetitions===0&&!E.overdue)}},[o,t]),f=w.useMemo(()=>t.filter(C=>C.type==="section"&&(C.world??"study")==="study").sort((C,E)=>C.orderIdx-E.orderIdx).map(C=>({section:C,lessons:t.filter(E=>E.parentId===C.id&&E.type==="lesson").sort((E,k)=>E.orderIdx-k.orderIdx)})),[t]),h=w.useMemo(()=>{const T=new Map;for(const C of(r==null?void 0:r.sections)??[])T.set(C.sectionId,C.avgMastery);return T},[r]),d=w.useMemo(()=>t.filter(T=>{var E;const C=(E=s[T.id])==null?void 0:E.status;return T.type==="lesson"&&(T.world??"study")==="study"&&(C==="in_progress"||C==="mastered")}),[t,s]),[m,p]=w.useState(new Set),g=T=>p(C=>{const E=new Set(C);return E.has(T)?E.delete(T):E.add(T),E}),y=T=>{const C=l.get(T);return C?C.overdue?{color:"bg-review",title:i("review.quadrant.overdue")}:C.intervalDays>0&&C.intervalDays<=7?{color:"bg-gold",title:i("review.quadrant.short")}:C.intervalDays>7?{color:"bg-brand",title:i("review.quadrant.long")}:null:null},v=c.overdue.length>0;return x.jsxs("div",{className:"fixed inset-0 z-50 flex justify-end","data-testid":"review-drawer",children:[x.jsx("div",{className:"absolute inset-0 bg-black/40",onClick:e}),x.jsxs("div",{ref:a,role:"dialog","aria-modal":"true","aria-label":i("review.title"),className:"relative w-full max-w-md h-full bg-surface-0 border-l border-[var(--border)] shadow-elevated flex flex-col",children:[x.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)] shrink-0",children:[x.jsxs("h2",{className:"text-body font-bold flex items-center gap-1.5",children:[x.jsx(vn,{className:"w-4 h-4","aria-hidden":"true"})," ",i("review.title")]}),x.jsx("button",{onClick:e,"data-testid":"review-close","aria-label":i("action.close"),className:"text-ink-muted hover:text-ink-strong w-8 h-8 flex items-center justify-center rounded-lg hover:bg-surface-3",children:"✕"})]}),x.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-5","data-testid":"review-panel",children:[d.length>0&&x.jsxs("button",{onClick:()=>{const T=d[Math.floor(Math.random()*d.length)];T&&n(T.id)},"data-testid":"review-interleave",className:"btn-3d-neutral w-full py-2.5 text-body flex items-center justify-center gap-1.5",children:[x.jsx(dx,{className:"w-4 h-4"}),i("review.interleave")]}),o.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-ink-muted uppercase tracking-wider mb-2",children:i("review.srsHint")}),x.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:[{items:c.overdue,label:i("review.quadrant.overdue"),dot:"bg-review"},{items:c.short,label:i("review.quadrant.short"),dot:"bg-gold"},{items:c.long,label:i("review.quadrant.long"),dot:"bg-brand"},{items:c.inactive,label:i("review.quadrant.inactive"),dot:"bg-ink-faint"}].filter(T=>T.items.length>0).map(T=>x.jsxs("div",{className:"flex items-center gap-1 px-2 py-1 rounded-full bg-surface-3",children:[x.jsx("span",{className:`w-2 h-2 rounded-full ${T.dot}`}),x.jsx("span",{className:"text-label text-ink-muted",children:T.label}),x.jsx("span",{className:"text-label font-extrabold text-ink-strong tabular-nums",children:T.items.length})]},T.label))}),v&&x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"text-label text-ink-faint mb-1.5",children:i("review.overdueQuickHint")}),x.jsx("div",{className:"flex flex-wrap gap-1.5",children:c.overdue.slice(0,8).map(T=>{const C=t.find(E=>E.id===T.nodeId);return C?x.jsx("button",{onClick:()=>n(T.nodeId),"data-testid":`review-overdue-${T.nodeId.slice(0,8)}`,className:"px-2 py-1 rounded-full bg-review/10 ring-1 ring-review/20 text-label text-review font-bold hover:bg-review/20 transition-colors truncate max-w-[140px]",children:C.title},T.nodeId):null})})]})]}),f.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-ink-muted uppercase tracking-wider mb-2",children:i("review.myProgress")}),x.jsx("div",{className:"space-y-1",children:f.map(({section:T,lessons:C})=>{const E=Math.round((h.get(T.id)??0)*100),k=m.has(T.id),_=C.filter(A=>{var S;const I=(S=s[A.id])==null?void 0:S.status;return I==="in_progress"||I==="mastered"});return x.jsxs("div",{children:[x.jsxs("button",{onClick:()=>g(T.id),className:"w-full flex items-center gap-2 p-2 rounded-lg hover:bg-surface-3 transition-colors",children:[k?x.jsx(Eu,{className:"w-3.5 h-3.5 text-ink-muted shrink-0"}):x.jsx(D1,{className:"w-3.5 h-3.5 text-ink-muted shrink-0"}),x.jsx("span",{className:"text-body text-ink-strong font-bold truncate flex-1 text-left",children:T.title}),_.length>0&&x.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[x.jsx("div",{className:"w-16 h-1.5 bg-surface-3 rounded-full overflow-hidden",children:x.jsx("div",{className:`h-full rounded-full ${E>=100?"bg-gold":"bg-brand"}`,style:{width:`${Math.max(3,E)}%`}})}),x.jsxs("span",{className:"text-label tabular-nums text-ink-muted w-8 text-right",children:[E,"%"]})]})]}),k&&x.jsx("div",{className:"ml-5 mt-0.5 mb-1 space-y-0.5","data-testid":"review-lesson-list",children:C.length===0?x.jsx("div",{className:"text-label text-ink-faint py-1.5 pl-1",children:"—"}):C.map(A=>{const I=s[A.id],S=I?Math.round((I.mastery??0)*100):null,M=y(A.id),N=(I==null?void 0:I.status)==="in_progress"||(I==null?void 0:I.status)==="mastered";return x.jsxs("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded-lg transition-colors ${(M==null?void 0:M.color)==="bg-review"?"bg-review/8":"hover:bg-surface-3"}`,children:[M?x.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${M.color} shrink-0`,title:M.title}):x.jsx("span",{className:"w-1.5 h-1.5 shrink-0"}),x.jsx("span",{className:`text-label truncate flex-1 ${N?"text-ink-strong":"text-ink-faint"}`,children:A.title}),S!==null&&x.jsxs("span",{className:"text-label tabular-nums text-ink-muted shrink-0 w-8 text-right",children:[S,"%"]}),N&&x.jsx("button",{onClick:()=>n(A.id),"data-testid":`review-lesson-${A.id.slice(0,8)}`,className:"shrink-0 px-2 py-0.5 rounded-md bg-brand/15 text-brand text-caption font-bold hover:bg-brand/25 transition-colors",children:i("review.reviewLesson")})]},A.id)})})]},T.id)})})]}),r&&r.frictionByNode.length>0&&x.jsxs("div",{children:[x.jsx("div",{className:"text-caption font-bold text-review uppercase tracking-wider mb-1.5",children:i("dashboard.mini.struggle")}),r.frictionByNode.map(T=>x.jsxs("button",{onClick:()=>n(T.nodeId),className:"flex items-center gap-2 py-0.5 w-full text-left hover:bg-surface-3 rounded px-1",children:[x.jsxs("span",{className:"text-label text-review font-bold tabular-nums",children:[T.count,"×"]}),x.jsx("span",{className:"text-label text-ink-strong truncate flex-1",children:T.title})]},T.nodeId))]}),d.length===0&&o.length===0&&f.length===0&&x.jsxs("div",{className:"text-center py-16","data-testid":"review-empty",children:[x.jsx("div",{className:"text-4xl mb-3 opacity-30",children:"📖"}),x.jsx("div",{className:"text-body text-ink-muted",children:i("review.empty.title")}),x.jsx("div",{className:"text-label text-ink-faint mt-1",children:i("review.empty.desc")})]})]})]})]})}function VR({message:e,onClose:t}){const n=Ge();return x.jsxs("div",{role:"alert","data-testid":"error-banner",className:"px-4 py-2 border-b border-warning-tint-border text-warning text-body flex items-center justify-between",style:{backgroundColor:"var(--warning-tint)"},children:[x.jsxs("span",{children:["⚠️ ",e]}),x.jsx("button",{className:"ml-3 underline text-warning-light",onClick:t,children:n("action.close")})]})}function qR({streak:e}){const t=Ge();return x.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1.5 rounded-full border border-review/20",style:{backgroundColor:"var(--review-tint)"},"data-testid":"streak-badge",title:t("streak.title",{n:e.currentStreak,m:e.longestStreak}),children:[x.jsx(uh,{className:"w-4 h-4 text-review flame-flicker"}),x.jsx("span",{className:"text-body font-extrabold text-review",children:e.currentStreak}),e.freezeCount>0&&x.jsxs("span",{className:"flex items-center gap-0.5 ml-0.5","data-testid":"freeze-badge",title:t("streak.freeze.title",{n:e.freezeCount}),children:[x.jsx(cx,{className:"w-3 h-3 text-review/80","aria-hidden":"true"}),x.jsx("span",{className:"text-label font-bold text-review/80",children:e.freezeCount})]})]})}window.addEventListener("error",e=>{var t;console.error("[FATAL renderer error]",((t=e.error)==null?void 0:t.stack)||e.message)});window.addEventListener("unhandledrejection",e=>{var t;console.error("[FATAL unhandled rejection]",((t=e.reason)==null?void 0:t.stack)||e.reason)});function $R({rejected:e}){const t=navigator.language.startsWith("zh"),[n,r]=yu.useState(""),s=i=>{i.preventDefault();const a=n.trim();if(!a)return;const o=a.includes("token=")?new URL(a).searchParams.get("token")??"":a;o&&Se(async()=>{const{setWebToken:u}=await import("./api-web-DeJFZI02.js");return{setWebToken:u}},[],import.meta.url).then(({setWebToken:u})=>u(o))};return x.jsx("div",{className:"min-h-[var(--app-height,100vh)] bg-[#0e2a12] flex items-center justify-center p-6",children:x.jsxs("form",{onSubmit:s,className:"w-full max-w-sm text-center",children:[x.jsx("div",{className:"text-4xl mb-3",children:"🎈"}),x.jsx("h1",{className:"text-title font-bold text-white mb-1",children:"LookatStudy"}),x.jsx("p",{className:"text-label text-white/55 leading-relaxed mb-5",children:t?"连接本机学习服务:粘贴启动时打印的令牌或整条链接":"Connect to your study server — paste the token or the full link printed at startup"}),e&&x.jsx("p",{className:"text-label text-warning-light mb-3",children:t?"上次的令牌被拒绝了,请重新输入":"Previous token was rejected, please re-enter"}),x.jsx("input",{type:"text",value:n,onChange:i=>r(i.target.value),placeholder:t?"访问令牌":"access token",autoFocus:!0,className:"w-full bg-black/30 text-white placeholder:text-white/30 text-body font-mono rounded-lg px-3 py-2.5 border border-white/20 focus:border-brand focus:outline-none transition-colors mb-3"}),x.jsx("button",{type:"submit",disabled:!n.trim(),className:"btn-3d-brand w-full px-3 py-2.5 text-body disabled:opacity-40",children:t?"连接":"Connect"}),x.jsx("p",{className:"text-caption text-white/40 leading-relaxed mt-5",children:t?"令牌在服务启动日志里,形如 http://127.0.0.1:17890/?token=…,也可以直接打开那个链接。":"The token is in the server startup log, like http://127.0.0.1:17890/?token=… — opening that link directly works too."})]})})}const Hg=w1.createRoot(document.getElementById("root"));function WR(){Hg.render(x.jsx(yu.StrictMode,{children:x.jsx(i3,{children:x.jsx(BR,{})})}))}function nh(e){Hg.render(x.jsx(yu.StrictMode,{children:x.jsx($R,{rejected:e})}))}async function YR(){const{installAppHeight:e}=await Se(async()=>{const{installAppHeight:t}=await import("./app-height-D5bf5z0g.js");return{installAppHeight:t}},[],import.meta.url);if(e(),!window.api){const t=await Se(()=>import("./api-web-DeJFZI02.js"),[],import.meta.url);if(window.addEventListener(t.TOKEN_REJECTED_EVENT,()=>nh(!0)),!t.hasWebToken()){nh(!1);return}try{await t.installWebApi()}catch(n){console.error("[boot] web api 安装失败:",n)}}WR()}YR();export{Ws as $,eT as A,vn as B,H1 as C,yh as D,mh as E,Us as F,$1 as G,ku as H,XR as I,Ul as J,lh as K,X1 as L,dh as M,QR as N,hx as O,hh as P,t4 as Q,B1 as R,dx as S,mx as T,yx as U,ix as V,xh as W,yr as X,Lb as Y,Sn as Z,Se as _,le as a,Lh as a0,Hh as a1,Oc as a2,Tm as a3,Si as a4,mw as a5,zs as b,me as c,ux as d,ss as e,ch as f,kh as g,O1 as h,Tn as i,Tu as j,ah as k,vs as l,e4 as m,md as n,hd as o,JR as p,wv as q,qe as r,ZR as s,Ae as t,Ge as u,Zk as v,jn as w,Qk as x,Qs as y,mm as z};