icoa-cli 2.19.355 → 2.19.357

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 (81) hide show
  1. package/dist/commands/ai4ctf.js +1 -1
  2. package/dist/commands/arena.js +1 -1
  3. package/dist/commands/ctf.js +787 -1
  4. package/dist/commands/ctf4ai-demo.js +1 -1
  5. package/dist/commands/ctf4vla.js +1 -1
  6. package/dist/commands/demo2.js +1502 -1
  7. package/dist/commands/exam.js +1 -1
  8. package/dist/commands/files.js +59 -1
  9. package/dist/commands/ipynb.d.ts +10 -4
  10. package/dist/commands/ipynb.js +1 -1
  11. package/dist/commands/lang.js +202 -1
  12. package/dist/commands/log.js +171 -1
  13. package/dist/commands/shell.d.ts +15 -0
  14. package/dist/commands/shell.js +151 -1
  15. package/dist/commands/sim.js +389 -1
  16. package/dist/index.js +355 -1
  17. package/dist/lib/access.js +184 -1
  18. package/dist/lib/aienv.js +205 -1
  19. package/dist/lib/arena-submit.js +21 -1
  20. package/dist/lib/banner.js +31 -1
  21. package/dist/lib/budget.js +6 -1
  22. package/dist/lib/challenge-dir.js +16 -1
  23. package/dist/lib/colors.js +17 -1
  24. package/dist/lib/comms.js +212 -1
  25. package/dist/lib/config.js +93 -1
  26. package/dist/lib/countdown.js +43 -1
  27. package/dist/lib/country-lang.js +39 -1
  28. package/dist/lib/ctfd-client.js +417 -1
  29. package/dist/lib/demo-exam.js +478 -1
  30. package/dist/lib/demo-flags.js +27 -1
  31. package/dist/lib/demo-stats.js +62 -1
  32. package/dist/lib/demo2-progress.js +102 -1
  33. package/dist/lib/docker-probe.d.ts +45 -0
  34. package/dist/lib/docker-probe.js +118 -0
  35. package/dist/lib/editor-spawn.d.ts +23 -0
  36. package/dist/lib/editor-spawn.js +53 -0
  37. package/dist/lib/exam-client.js +54 -1
  38. package/dist/lib/exam-sandbox.js +201 -1
  39. package/dist/lib/exam-setup.js +36 -1
  40. package/dist/lib/exam-state.js +273 -1
  41. package/dist/lib/gemini.js +247 -1
  42. package/dist/lib/i18n.js +302 -1
  43. package/dist/lib/integrity-snapshot.js +88 -1
  44. package/dist/lib/interactive-spawn.js +55 -1
  45. package/dist/lib/ipynb-input.js +65 -1
  46. package/dist/lib/kernel-protocol.js +88 -1
  47. package/dist/lib/kernel.js +146 -2
  48. package/dist/lib/learn-curricula.js +309 -1
  49. package/dist/lib/learn-i18n.js +184 -1
  50. package/dist/lib/learn-input.js +101 -1
  51. package/dist/lib/learn-render.js +863 -1
  52. package/dist/lib/learn-state.js +103 -1
  53. package/dist/lib/log-sync.js +155 -1
  54. package/dist/lib/logger.js +49 -1
  55. package/dist/lib/main-rl.js +7 -1
  56. package/dist/lib/menu-nav.js +105 -1
  57. package/dist/lib/notebook-doc.d.ts +38 -0
  58. package/dist/lib/notebook-doc.js +137 -0
  59. package/dist/lib/open-file.js +55 -1
  60. package/dist/lib/paper-upgrade.js +119 -1
  61. package/dist/lib/platform.js +99 -1
  62. package/dist/lib/render-card.js +112 -1
  63. package/dist/lib/repl-asker.js +67 -1
  64. package/dist/lib/sample-runner.js +227 -1
  65. package/dist/lib/sandbox.d.ts +25 -1
  66. package/dist/lib/sandbox.js +144 -1
  67. package/dist/lib/shell-split.js +69 -1
  68. package/dist/lib/sim-cooldown.js +75 -1
  69. package/dist/lib/theme.js +119 -1
  70. package/dist/lib/token-format.js +74 -1
  71. package/dist/lib/tool-man.js +418 -1
  72. package/dist/lib/toolset-hash.js +48 -1
  73. package/dist/lib/translation.js +80 -1
  74. package/dist/lib/translations-fetcher.js +95 -1
  75. package/dist/lib/ui.js +99 -1
  76. package/dist/lib/update-check.js +114 -1
  77. package/dist/lib/version.js +24 -1
  78. package/dist/postinstall.js +48 -1
  79. package/dist/repl.js +2391 -1
  80. package/dist/types/index.js +63 -1
  81. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(j,k){const a3=a0k,q=j();while(!![]){try{const v=parseInt(a3(0x1cc))/(0x3a3+-0x7e7+0x445)*(parseInt(a3(0x21c))/(-0x1*0x25df+-0x9*0x1e3+-0x2*-0x1b6e))+-parseInt(a3(0x23c))/(-0x19*-0xef+0x124*-0x4+-0x4b1*0x4)+-parseInt(a3(0x297))/(-0x675+0x53*-0x19+0xe94)+parseInt(a3(0x2b5))/(-0x1*-0xa6f+0x89f*-0x1+-0x1*0x1cb)*(parseInt(a3(0x2ce))/(-0x1da+0xa1a*0x3+0x1c6e*-0x1))+parseInt(a3(0x2ad))/(-0x1*0xe17+0x19c6*0x1+-0xba8)*(-parseInt(a3(0x281))/(-0x1*0x19b6+0xb7*0x22+-0x5c*-0x4))+parseInt(a3(0x27e))/(0x1*0x1021+0xcba+-0x1*0x1cd2)*(-parseInt(a3(0x1f3))/(0x1e8+-0x8b2+0x13*0x5c))+parseInt(a3(0x1bd))/(-0xe8f*0x2+-0xc*-0x107+0x10d5);if(v===k)break;else q['push'](q['shift']());}catch(z){q['push'](q['shift']());}}}(a0j,0x690d6+-0x63591+-0x2*-0x26629));import a0v from'chalk';import{createChatSession as a0z}from'../lib/gemini.js';import{addTokenUsage as a0B}from'../lib/budget.js';import{getConfig as a0D,isConnected as a0E}from'../lib/config.js';import{logCommand as a0F,logSubmission as a0G}from'../lib/logger.js';import{printMarkdown as a0H,printError as a0I}from'../lib/ui.js';import{t as a0J}from'../lib/i18n.js';const g=j=>new Promise(k=>setTimeout(k,j));let r=!(0x15aa*-0x1+-0x2*0x610+0x21cb),u=null,h=-0x71*-0x13+-0xa93+0x230,y=0x2091+0x1*-0x23b+0xf2b*-0x2,d=!(0x9b2+0x1*-0xe1+-0x8d1),f=!(-0x704+-0xe1a+0x151f*0x1),m=!(-0xed*0x22+-0x16*0xbf+0x2fe5);function a0j(){const aj=['C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','Dg9Rzw5ZvxnLza','ywK0y3rMq2HHBgXLBMDL','AgLUDcbH','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','igLZigeGBxvSDgLWBguTy2HVAwnLihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0Acbbl0iVqY9elG','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','AgfZ','ywK0y3rMt3jdAgf0rxHHBxbSzq','icaGigv4AxqGicaGicaGicaGica','BNvKz2vtAg93BG','ywK0y3rMsgLUDfbYAw5JAxbSzq','ue9tva','ywnJB3vUDenHCa','B3bLBIa8Awq+','iokvKokvKokvKa','y2HHBgXLBMDLtMfTzq','zxHHBsbXia','icdINjmGuq','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','z3jLzw4','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','icaGigHPBNqGyq','ywK0y3rMrxHPDa','icaGigv4Axq','u2nVCgvKihrVihrOzsbJAgfSBgvUz2uGEw91ig9Wzw5Lzc4GqxnRigzYzwvSEsdIGjq','icaGicaGicaGicaGica','ywK0y3rMv3jHCff1B3rHqW','icdILzdILzdILzaGquKGvgvHBw1HDguG4Pwq4Pwq4Pwq','vw5RBM93BIbYzxnWB25Zzq','y29TBwfUza','ywK0y3rMv3jVBMDgBgfN','ywK0y3rMv3jHCff1B3rHq0HPBNq','C2vZC2LVBKnVB2TPzq','mtmWnJC2mtvKqxrvDgi','icbr','ywK0y3rMsgLUDefcB2r5','y3rMzfvYBa','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','x2XHC3rr','ywXYzwfKEv9ZB2X2zwq','ig5VDcbMB3vUzcbPBIbZDgf0zs4','lI4VBgLIl2n0zMqTy2XPzw50lMPZ','icdILii','BNvTyMvY','Aw50zxjHy3rPB25Z','ywK0y3rMv3jHCfr5CgvdDgy0ywK','BM93','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','mtu3ouHYDerQsa','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','yM9VBgvHBG','yMfJAW','zgvZy3jPChrPB24','icaGihn1yM1PDca8zMXHzZ4Gica','ywK0y3rMv3jHCeXPBMuYqM9KEq','icbtDgLSBcbHDMfPBgfIBgu6ia','xsaGWRCG','imk3ia','sgLUDca','BMfTzq','icdIMQaG','icbdB21Tyw5KCW','C3vIBwL0ia','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','yw5ZD2vYx3n1yM1PDhrLza','ywK0y3rMq29YCMvJDezSywC','icbtDwjTAxnZAw9UigzHAwXLzdOG','icdILzdILzdILzaGquK0q1rgiokaLcbr','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','icH1CgrHDgvZigfMDgvYihLVDxiGzMLYC3qGBwvZC2fNzsK','uNvUigeGC2HLBgWGy29TBwfUzcaOzs5NlIaHyMfZzty0ic1Kic4UlIK','yxr0ywnOzwreyxrH','CMvWBgfJzq','ywK0y3rMv3jHCff1B3rHquHPBNq','EwvSBg93','icdcTYaGuMuTzw50zxi6ia','y3rMngvHAq','y29UDgLUDwu','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','rNvSBcbXDwvZDgLVBJOGia','y3vYCMvUDenOywXSzw5Nzu5HBwu','E25VuhjVz30','ihrVig1VDMuGB24','zgf0yq','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','AgLUDcbI','mJK2mZbrt1jqvuq','ywK0y3rMv3jHCeXPBMuXsgvHza','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMt3jdAgf0','ywK0y3rMsgLUDfrLy2HUAxf1zq','ywK0y3rMvg9Rzw5Z','ywK0y3rMrw5Ku2vZC2LVBG','C3vIBwL0idXMBgfNpG','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','z2vTBweTnc0ZmwiTAxq','ieLdt0f7lI4UFq','ywK0y3rMsgLUDefvC2vZ','C29Tzq','icaGicaGia','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','DgHPBMTPBMC','zxHPDa','BgvUz3rO','AgLUDcbJ','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','Cu51Bq','Bg9N','BwLU','Aw5JBhvKzxm','ywK0y3rMtg9JA2vKvgL0Bgu','iokaLca','CMf0zwXPBwL0zwq','icbB','ywK0y3rMsgLUDe5LEhrc','q29TBwfUzcbMywLSzwq','q3j5ChrVz3jHCgH5','igLZigeGq1rgnefjihf1zxn0Aw9UicHHDhrHy2STDgHLlufjks4','icbdDxjYzw50igfUC3DLCJOG','Dgv4Da','C3rHCNrZv2L0Aa','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbPBIbHigXPDMuGq2fWDhvYzs1uAguTrMXHzYbJB21WzxrPDgLVBI4kcKnvuLjftLqGq0HbteXftKDfoIaI','AM9PBG','icboBYbJAgfSBgvUz2uGB3bLBIb5zxqU','icbfCNjVCJOG','CgfKrw5K','mti2BfHyv2rr','y3vYCMvUDenOywXSzw5NzunHDgvNB3j5','BM9KztPJAgLSzf9WCM9JzxnZ','icaGwW','C2vZC2LVBJ0','vg9Rzw4G','icbdB21WzxrPDgLVBIbPCYbWyxvZzwqU','ywK0y3rMrxHPDe5LEhrtDwi','ywK0y3rMsgLUDee','quKGyNvKz2v0icH0AgLZigfJy291BNqP','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','Bwf0y2G','icaGicfWExrOB24Zic4UlG','ywK0y3rMtw9KzwW','icbvC2u6ia','C3rHDhvZ','icdWN46jienVCNjLy3qHia','tgvHDMuGDgHLiefjihrLyw1TyxrL','Dg9ju09tDhjPBMC','E2nTzh0','Dg9mB3DLCKnHC2u','B3jcywnR','DhLWzq','ywK0y3rMrM91BMrgBgfN','ywK0y3rMsgLUDem','ywK0y3rMv291BgrfyxjU','ywK0y3rMrMXHz0HPBNq','l2fWAs9Py29Hl2fPl2fJy291BNqTyNvKz2v0p2TPBMq9ywK0y3rM','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','icaGicaGigHPBNqGyIaGia','ywK0y3rMv3jHCff1B3rHqG','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','mtuZmZGXm0nMtvLPyq','ywK0y3rMuMv2zwfStg9JA05VDgu','ywK0y3rMoIa','ywnJB3vUDfzLCMLMAwvK','icbuAgLUA2LUzY4UlG','z2v0q2HHBgXLBMDL','C2XPy2u','icdINjmGqw5ZD2vYigzVCIbr','ywK0y3rMvgL0Bgu','y3LHBG','icbzB3uGy2fUihn0AwXSoIa','y2f0y2G','yM9Sza','ywK0y3rMsw50zxjJzxb0zwq','icaGifbYzxzPB3vZoIa','ywK0y3rMsgLUDejvC2vZ','ywK0y3rMuMvWB3j0','ihrOzw4G','DgvZDa','zw50zxjLzef0','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywn0Aw9U','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','lI4VBgLIl2v4yw0TC3rHDguUANm','icbpCgvUig9UzsbMAxjZDdOG','icaGig1LBNu','ywK0y3rMv3jHCe5VuhjVzW','icbbssbIDwrNzxq6ia','q29UDgvUDc1uExbL','ywK0y3rMsgLUDei','icaGicaGigHPBNqGyYaGia','icdINjCGsw5JB3jYzwn0lIa','ywK0y3rMv3jHCeXPBMuYsgvHza','ywK0y3rMrxHPDe5LEhrcB2r5','ywrK','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','DhjPBq','Dg9Rzw4','Aw5JB3jYzwn0','yw5ZD2vYx2nOyw5Nzwq','iokaLcb1CgrHDguGAwnVys1JBgKGDg8GDgHLigXHDgvZDcb2zxjZAw9U','icbvC2fNztOG','cIaG','DxrMltG','icaGidXQDxn0ihr5Cgu+icaGica','ywK0y3rMv3jHCff1B3rHqKHPBNq','Cgf1C2vK','g1SXqrTBmKS','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','zMLUza','y2f0zwDVCNK','ywLvC2fNzq','DgHLiefjigD1AwrLCYWGAxqGD2LSBcbUB3qGAgfUzcb5B3uGDgHLigzSywCU','ywK0y3rMq21Ku2HLBgXmAw5L','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','CM91BMq','icdILiiG','yxbWBgLJyxrPB24VANnVBG','ywK0y3rMu2fTCgXL','oIbhB29NBguGr2vTBweGncaO','icaGice8C2HLBgWGy21KpIaGica','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','zw5JB2rPBMC','cGPdsefmtevor0uGqLjjruy6cG','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','DgLTzw91Da','nZGZthjfC05V','CMvWzwf0','y2XLyxi','mZa2ne1cyMjIyW','ywK0y3rM','icboBYbJAgfSBgvUz2uGAwqGAw4Gy29UDgv4DcdIGjqGB3bLBIbVBMuGzMLYC3q6ia','lI4VBgLIl2LUDgvNCML0Es1ZBMfWC2HVDc5QCW','y2HHBgXLBMDLswq','icbuAguGquKGDgvHBw1HDguGC2nVCgvZigL0C2vSzIb0BYb0AguGy2HHBgXLBMDLihLVDsbVCgvUlG','icaGidiUia','ywK0y3rMq21KsgLUDeXPBMu','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','quK0q1rgihnLy3rPB24','icbpCgvUigfUB3rOzxiGy2HHBgXLBMDLihDPDgGG','ChvZAa','igfNywLUihrVignOyw5NzsWGB3iG','ywK0y3rMsgLUDenvC2vZ','ywK0y3rMv3jHCeXPBMuXqM9KEq','ywnJB3vUDfnWzw50','ywK0y3rMq29TBwfUzhm','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','y3rMngfP','ywK0y3rMtg9JA2vKvgHLBG','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icaGideUia','nJe0mZuYCLPHA3rA','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','BwvUDq','lcbVCIbYzs1LBNrLCIb3AxrOia','vg9Rzw5Z','icdILRGG','quKGzxjYB3i6ia','icaGicaGicaGicaGicaGicaGicbLlMCUia','ig9UifeZoq','ywK0y3rMvgHPBMTPBMC','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','D3jPDgu','icaGihn1yM1PDcbjq09bEY4UlN0','DMXH','ywK0y3rMv3jHCff1B3rHC1rPDgXL','ixnOzwXS','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','icaKia','ihb0CW','C3vIBwL0ieLdt0f7lI4UFq','ody4AhDWtvjY','ywK0y3rMsgLUDe51zgDL','ihrVignVBNrPBNvL','ywK0y3rMsgLUDe5LEhrb','ywK0y3rMrgvJB2rL','CMvK','icbbzNrLCIbLEgL0oIa','icaGia','mJa1mdv6t05XvLq','ywK0y3rMuMv2zwfSu2vLrMXHzW','BwvZC2fNzq','igzVCIbrmZK','C3rYAw5NAwz5','D2HPDgu','Dw5RBM93BIbLCNjVCG','C3rKB3v0','Cg9PBNrZ','ihjLy29YzgvKoIa','ywK0y3rMsgLUDencB2r5','yw5ZD2vYCW','z2vTAw5Ptw9KzwW','icbbBhjLywr5ihnVBhzLzc4','CxvLC3rPB25Z','C3bSAxq','z3jHEq','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','zxHHBsbHBNn3zxiG','DhLWzufUzevUDgvYvg9czwDPBG','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','lZuWmda','CxvPDa','C2vUze1LC3nHz2u','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHJCNLWDg8SihDLyIWGzM9Yzw5ZAwnZlcbWD24SihjLDMvYC2LUzYWGt1njtLqSihn0zwDVlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGy29Kzsb0AguGy29UDgvZDgfUDcb3CML0zxmGyw5Kihn1z2DLC3qGD2HPy2GGDg9VBcaVigXPyNjHCNKGlYb0zwnOBMLXDwuGDg8GDxnLlGOTifLVDsbnvvnuie5pvcbYzxzLywWGB3iGz3vLC3mGDgHLigzSywCSigfUzcbnvvnuie5pvcbVDxrWDxqGyw55igzSywCTC2HHCgvKihn0CMLUzYaOyw55DgHPBMCGBgLRzsbUyw1LEY4UlN0PlGOTifLVDsbnvvnuie5pvcbZB2X2zsb0AguGD2HVBguGy2HHBgXLBMDLigvUzc10BY1LBMqGzM9YihrOzsbJB250zxn0yw50iokaLcbNDwLKzsWGzg9Uj3qGAgfUzcbVDMvYihrOzsbHBNn3zxiUcI0Gs2vLCcbYzxnWB25ZzxmGy29Uy2LZzsbHBMqGChjHy3rPy2fSlIbuAguGy29UDgvZDgfUDcbPCYbYywnPBMCGDgHLignSB2nRlG','mZbnDeTdB0G','icbtD2L0y2GGy2HHBgXLBMDLoIa','qxnRihrOzsbbssb0zwfTBwf0zsbHyM91Dcb0AgLZignOywXSzw5Nzq','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','icbbssb0zwfTBwf0zsbJBg9ZzwqGzM9Yici','ywK0y3rMv3jHCe5LEhrtDwi','lI4U','Dg9vChbLCKnHC2u','icaG4OAsia','icbbstrdveyGy2HHDcbPCYbHDMfPBgfIBguGB24GChjHy3rPy2fSihf1zxn0Aw9UCYaOBMv4DdOGuq','icaGigHPBNqGyW','icaGica'];a0j=function(){return aj;};return a0j();}const p=-0x6ff3+0x96d+0xc82e,w=-0xb69da+-0x4*0x1da8f+-0x1*-0x1aa416;let b=null,$=null;export function isChatActive(){return r;}function A(){const a4=a0k,j=b?p:$?y||w:0x1*-0x905+0x16*-0x5e+-0x1*-0x24a1,k=h,q=Math[a4(0x20a)](Math[a4(0x273)](k/j*(-0x20ed+-0x29*0x96+-0x9*-0x65f)),-0x1583*0x1+0x533+-0x2*-0x85a),v=Math[a4(0x273)](q/(-0x3*0x2f+-0x19b7+0x1aa8)*(-0x6dc+-0x1f84+-0x1*-0x2674)),z=0xabb+-0x105b*0x1+-0xa*-0x92-v,B=q>0xf1*0x26+-0x1357*-0x1+-0x1*0x36cd?a0v['red']:q>0x1839+0x1ce5+-0x34ec?a0v['yellow']:a0v['green'],D=b?a4(0x28a):$?a4(0x225):a4(0x29c);!$||d?!$||f?console[a4(0x209)](a0v[a4(0x2c5)]('\x20\x20'+D+':\x20')+B('█'[a4(0x27f)](v))+a0v[a4(0x2c5)]('░'[a4(0x27f)](z))+a0v[a4(0x2c5)]('\x20'+k+'/'+j+'\x20('+q+'%)')):console[a4(0x209)](a0v[a4(0x2c5)](a4(0x257))+a0v[a4(0x1e6)]('syncing…')+a0v[a4(0x2c5)](a4(0x1e1))):console[a4(0x209)](a0v[a4(0x2c5)](a4(0x257))+a0v['yellow']('not\x20enforced\x20for\x20this\x20login')+a0v[a4(0x2c5)](a4(0x264)));}export async function handleChatMessage(v){const a5=a0k;if(!u)return a5(0x204);if(a0F(a5(0x23e)+v),b)return C(v);if($)return async function(F){const a6=a5;if(!$||!u)return a6(0x204);const G=F[a6(0x260)](),H=G[a6(0x230)](),I=G[a6(0x227)](/^submit\s+(.+)/i);if(I){let J=I[-0xbb4+0x196f+-0xdba][a6(0x260)]();if(/^submit\s+/i[a6(0x24e)](J)&&(J=J[a6(0x1e4)](/^submit\s+/i,'')[a6(0x260)]()),J=J[a6(0x1e4)](/^["'`]+|["'`]+$/g,'')[a6(0x260)](),!J)return console['log'](),console[a6(0x209)](a0v[a6(0x2c5)](a6(0x265))+a0v[a6(0x2ba)](a6(0x1fb))),console[a6(0x209)](),a6(0x1e9);const K=$[a6(0x285)];if(!K)return console[a6(0x209)](),console[a6(0x209)](a0v['yellow'](a6(0x283))+a0v[a6(0x2ba)](a6(0x1a9))),console['log'](),'continue';a0G(K,J);const L=a0D();try{const {CTFdClient:M}=await import('../lib/ctfd-client.js'),N=L[a6(0x1bc)]||'',O=L['token']&&!L[a6(0x261)][a6(0x20b)]('session=')?L[a6(0x261)]:'',P=new M(L[a6(0x1c0)],O,N||L[a6(0x261)]),Q=await P['submitFlag'](K,J);switch(console[a6(0x209)](),Q[a6(0x22b)]){case'correct':console[a6(0x209)](a0v[a6(0x1af)][a6(0x248)](a6(0x22c))+a0v[a6(0x2ba)](Q['message']||''));break;case a6(0x262):console[a6(0x209)](a0v[a6(0x2b2)](a6(0x25b))+a0v['gray'](Q[a6(0x2b7)]||''));break;case a6(0x1c3):console[a6(0x209)](a0v[a6(0x1e6)](a6(0x2c2)));break;case a6(0x26a):console[a6(0x209)](a0v['yellow'](a6(0x222)));break;case a6(0x20e):console['log'](a0v[a6(0x1e6)]('\x20\x20Rate\x20limited\x20—\x20wait\x20a\x20moment\x20before\x20trying\x20again.'));break;default:console[a6(0x209)](a0v[a6(0x2c5)]('\x20\x20'+(Q['message']||a6(0x1b8))));}console[a6(0x209)]();const {postIntegritySnapshot:R}=await import(a6(0x284));await R();}catch(S){console[a6(0x209)](),console[a6(0x209)](a0v[a6(0x2b2)](a6(0x1de)+(S['message']?.[a6(0x2c4)]('\x0a')[0xb0c+-0x64*-0x3e+-0x2344]||a6(0x2bb)))),console[a6(0x209)]();}return'continue';}if(F[a6(0x216)]('!')){const T=F[a6(0x242)](-0x35d+0xc95+0x937*-0x1)[a6(0x260)]();if(!T)return'continue';try{const U={};U[a6(0x27a)]=a6(0x267),U['timeout']=0x2710;const {execSync:V}=await import(a6(0x21e)),W=V(T,U)[a6(0x260)]();console[a6(0x209)](),console[a6(0x209)](a0v[a6(0x2c5)]('\x20\x20$\x20')+a0v[a6(0x2ba)](T)),console[a6(0x209)](a0v[a6(0x2ba)]('\x20\x20'+W[a6(0x2c4)]('\x0a')[a6(0x218)](a6(0x266)))),console['log']();}catch(X){console[a6(0x209)](),console[a6(0x209)](a0v[a6(0x2b2)](a6(0x21a)+(X['message']?.[a6(0x2c4)]('\x0a')[0x1cbd+0x2324+0xed*-0x45]||'Command\x20failed'))),console['log']();}return a6(0x1e9);}if('exit'===H||'back'===H||'quit'===H){const Y=$[a6(0x1ab)];return r=!(0x3a7+0x1*-0xa7+-0x2ff),u=null,$=null,console[a6(0x209)](),console[a6(0x209)](a0v[a6(0x2c5)](a6(0x190)+Y+'\x22.')),console[a6(0x209)](a0v[a6(0x2c5)](a6(0x28b))+a0v['white'](a6(0x1a9))+a0v['gray'](a6(0x29b))+a0v[a6(0x2ba)](a6(0x282))),console['log'](),a6(0x204);}console['log'](a0v[a6(0x2c5)]('\x20\x20'+a0J(a6(0x2a1))));try{const Z=await u['sendMessage'](F);process[a6(0x2bc)][a6(0x2a3)](a6(0x26b)),a0B(Z['tokensUsed']),a6(0x1c7)==typeof Z[a6(0x290)]?(h=Z[a6(0x290)],d=!(0x22db+0x984+0x25*-0x133),f=!(0x2f*-0xa3+0x24f7*0x1+-0x70a),a6(0x1c7)==typeof Z[a6(0x1a8)]&&(y=Z[a6(0x1a8)])):(h+=Z['tokensUsed'],f=!(-0xa*0x33b+-0x1e6f+0x3ebd)),console[a6(0x209)](),a0H(Z['text']),A(),console[a6(0x209)]();}catch(a0){process[a6(0x2bc)][a6(0x2a3)]('\x1b[1A\x1b[2K'),a0I(a6(0x29e)+a0[a6(0x2b7)]),console['log']();}return a6(0x1e9);}(v);const z=v[a5(0x260)]()[a5(0x230)]()[a5(0x227)](/^hint\s+([abc])$/);if(z)return function(F){const a7=a5,G=a0J('a'===F?a7(0x224):'b'===F?a7(0x259):'ai4ctfHintC'),H=a0J('a'===F?a7(0x1bf):'b'===F?'ai4ctfHintBBody':a7(0x2bf)),I=a7(0x1d6)+F[a7(0x193)](),J='a'===F?a0v[a7(0x1af)]:'b'===F?a0v[a7(0x1e6)]:a0v[a7(0x2b2)];console['log'](),console[a7(0x209)](J[a7(0x248)](a7(0x29d)+I+'\x20\x20')+a0v['gray'](G)),console[a7(0x209)]();for(const K of H[a7(0x2c4)]('\x0a'))''===K?console[a7(0x209)]():console[a7(0x209)](a0v[a7(0x2ba)](a7(0x2b4)+K));console[a7(0x209)](),'a'===F?(console[a7(0x209)](a0v[a7(0x2c5)](a7(0x2b4)+a0J(a7(0x2b0))+'\x20')+a0v['cyan'](a7(0x1f2))),console[a7(0x209)]()):'b'===F&&(console['log'](a0v[a7(0x2c5)]('\x20\x20\x20\x20'+a0J(a7(0x210))+'\x20')+a0v['cyan'](a7(0x206))),console[a7(0x209)]());}(z[-0x92a+-0x714+-0x1*-0x103f]),a5(0x1e9);const B=v[a5(0x227)](/^submit\s+(.+)/i);if(B){let F=B[-0x2*-0x1c9+0xa2*-0x28+-0x13*-0x125][a5(0x260)]();if(/^submit\s+/i[a5(0x24e)](F)&&(F=F[a5(0x1e4)](/^submit\s+/i,'')[a5(0x260)]()),F=F[a5(0x1e4)](/^["'`]+|["'`]+$/g,'')[a5(0x260)](),a5(0x289)===F){console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x1af)][a5(0x248)](a5(0x25f))),console[a5(0x209)](a0v[a5(0x1af)][a5(0x248)]('\x20\x20'+a0J(a5(0x1dd)))),console['log'](a0v[a5(0x1af)][a5(0x248)](a5(0x25f))),console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x2ba)]('\x20\x20'+a0J('ai4ctfDecoded'))),console[a5(0x209)](a0v['gray']('\x20\x20'+a0J(a5(0x235)))),console[a5(0x209)](),A(),r=!(0x3d+-0x437*0x3+-0x1*-0xc69),u=null,fetch(a5(0x18f),{'method':'POST','headers':{'Content-Type':a5(0x275)},'body':JSON[a5(0x2b9)]({'type':a5(0x282),'solved':!(-0xa08+-0x33f*-0x3+0x4b),'tokensUsed':h,'timestamp':new Date()[a5(0x22e)]()}),'signal':AbortSignal[a5(0x27d)](0x5fb+-0x233f+0x822*0x6)})[a5(0x247)](()=>{}),await g(-0x109+0x1*0x1471+-0xd8c),console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x245)]('\x20\x20─────────────────────────────────────────────')),console[a5(0x209)](a0v[a5(0x248)]['white']('\x20\x20'+a0J('ai4ctfWrapTitle'))),console[a5(0x209)](a0v['cyan'](a5(0x2a2))),console[a5(0x209)]();const G=a0J(a5(0x1f4)),H=a0J(a5(0x28f));console[a5(0x209)](a0v['white'](a5(0x296)+G+'\x20')+a0v[a5(0x2c5)](H['split']('\x0a')[-0x1902+-0xb3*-0x1a+0x6d4]||''));for(const L of H['split']('\x0a')[a5(0x242)](-0x11ef*-0x2+-0xf9c+-0x1441))L[a5(0x260)]()&&console[a5(0x209)](a0v[a5(0x2c5)](a5(0x201)+L[a5(0x1e4)](/\{thinking\}/g,a5(0x203))));console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x2ba)](a5(0x287)+a0J(a5(0x25c))+'\x20')+a0v['gray'](a0J(a5(0x1d2)))),console[a5(0x209)](),console['log'](a0v['cyan']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console['log'](),await g(-0xa*0x1d6+-0x1893+0x32bf),console['log'](a0v[a5(0x245)]('\x20\x20─────────────────────────────────────────────')),console[a5(0x209)](a0v['bold'][a5(0x2ba)]('\x20\x20'+a0J(a5(0x2a6)))),console[a5(0x209)](a0v[a5(0x245)](a5(0x2a2))),console['log'](),console['log'](a0v['yellow']('\x20\x20\x20\x20\x20\x20\x20hint\x20a\x20\x20\x20')+a0v[a5(0x2ba)](a0J('ai4ctfWrapQuotaA')[a5(0x21b)](0x572+0x10e0+-0x1638))+a0v['gray'](a0J(a5(0x1e5)))),console[a5(0x209)](a0v['yellow'](a5(0x239))+a0v[a5(0x2ba)](a0J(a5(0x23a))[a5(0x21b)](-0x11b*-0xb+0x22f*0x4+-0x14cb))+a0v[a5(0x2c5)](a0J(a5(0x269)))),console[a5(0x209)](a0v[a5(0x1e6)](a5(0x25a))+a0v[a5(0x2ba)](a0J(a5(0x1b6))[a5(0x21b)](0x112+0x81a+-0x912))+a0v[a5(0x2c5)](a0J(a5(0x1bb)))),console[a5(0x209)]();for(const M of a0J('ai4ctfWrapQuotaFooter')[a5(0x2c4)]('\x0a'))console['log'](a0v['gray']('\x20\x20\x20\x20'+M));console[a5(0x209)](),await g(0x17ac+0x2102+-0x30de),console[a5(0x209)](a0v['cyan']('\x20\x20─────────────────────────────────────────────')),console[a5(0x209)](a0v[a5(0x248)][a5(0x2ba)]('\x20\x20'+a0J('ai4ctfWrapNextTitle')+'\x20')+a0v['red']['bold'](a5(0x293))+a0v[a5(0x2ba)](a5(0x20d)+a0J(a5(0x191)))),console[a5(0x209)](a0v['cyan'](a5(0x2a2))),console['log']();const I=a0J('ai4ctfWrapNextBody'),J=a0J(a5(0x256)),K=I[a5(0x2c4)]('\x0a');if(K[0x1*-0x1796+0x551*0x5+-0x2ff]){const [N,O]=K[0xf*-0x171+-0x7*0x1f4+0x234b][a5(0x2c4)](a5(0x1ee));console[a5(0x209)](a0v[a5(0x2ba)](a5(0x2b4)+(N||''))+a0v[a5(0x248)][a5(0x2ba)](J)+a0v[a5(0x2ba)](O||''));}for(const P of K[a5(0x242)](-0x79a+-0x714+0xeaf))P[a5(0x260)]()&&console[a5(0x209)](a0v[a5(0x2ba)](a5(0x2b4)+P));return console[a5(0x209)](),console[a5(0x209)](a0v['gray'](a5(0x2b4)+a0J(a5(0x1c9))+'\x20')+a0v[a5(0x248)]['red'](a5(0x293))),console[a5(0x209)](),'exit';}return console[a5(0x209)](),console[a5(0x209)](a0v['red']('\x20\x20'+a0J(a5(0x1ba)))),console[a5(0x209)](a0v[a5(0x2c5)]('\x20\x20'+a0J(a5(0x236)))),console[a5(0x209)](),a5(0x1e9);}if(v[a5(0x216)]('!')){const Q=v[a5(0x242)](0x25c+-0x278*0x6+0x427*0x3)[a5(0x260)]();if(!Q)return a5(0x1e9);try{const R={};R[a5(0x27a)]='utf-8',R['timeout']=0x2710;const {execSync:S}=await import(a5(0x21e)),T=S(Q,R)[a5(0x260)]();console[a5(0x209)](),console[a5(0x209)](a0v['gray'](a5(0x2aa))+a0v[a5(0x2ba)](Q)),console[a5(0x209)](a0v[a5(0x2ba)]('\x20\x20'+T['split']('\x0a')[a5(0x218)](a5(0x266)))),console[a5(0x209)](),console['log'](a0v['gray']('\x20\x20'+a0J(a5(0x233)))),console[a5(0x209)]();}catch(U){console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x2b2)](a5(0x21a)+(U[a5(0x2b7)]?.['split']('\x0a')[0x1828+-0xd*0x11+-0x174b]||a5(0x211)))),console[a5(0x209)]();}return'continue';}const D={};D[a5(0x258)]=a5(0x275);if(a5(0x204)===v||'back'===v||a5(0x2cb)===v||a5(0x29a)===v)return r=!(0x1cc4*-0x1+-0x2066+0x3d2b),u=null,fetch(a5(0x18f),{'method':a5(0x1a7),'headers':D,'body':JSON[a5(0x2b9)]({'type':a5(0x282),'tokensUsed':h,'timestamp':new Date()[a5(0x22e)]()}),'signal':AbortSignal[a5(0x27d)](-0xa02+-0x1440+0x31ca)})[a5(0x247)](()=>{}),console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x2c5)](a5(0x1f6))),console[a5(0x209)](a0v['white']('\x20\x20'+a0J(a5(0x24c)))),console[a5(0x209)](a0v[a5(0x2c5)]('\x20\x20'+a0J(a5(0x1f9))+':\x20'+h+a5(0x2ca))),console['log'](a0v[a5(0x2c5)]('\x20\x20'+a0J('ai4ctfModel')+a5(0x1ae))),console[a5(0x209)](a0v['gray'](a5(0x1f6))),console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x245)]('\x20\x20─────────────────────────────────────────────')),console['log'](a0v[a5(0x2ba)]('\x20\x20'+a0J('ai4ctfExitNextTitle')+'\x20')+a0v[a5(0x248)][a5(0x2b2)]('ctf4ai')+a0v[a5(0x2ba)]('\x20—\x20'+a0J(a5(0x223)))),console[a5(0x209)](a0v[a5(0x2c5)]('\x20\x20'+a0J(a5(0x25d)))),console[a5(0x209)](a0v[a5(0x245)](a5(0x2a2))),console[a5(0x209)](),console[a5(0x209)](a0v[a5(0x2ba)]('\x20\x20▸\x20\x20')+a0v['white'](a0J(a5(0x2c8))[a5(0x1e4)](a5(0x22f),a0v['bold'][a5(0x2b2)](a5(0x293))))),console[a5(0x209)](a0v[a5(0x2c5)](a5(0x197)+a0J(a5(0x231)))),console['log'](),a5(0x204);const E={};E['Content-Type']=a5(0x275);if(!m&&h>=-0x2065+-0xf34+0x4321)return m=!(0x2147+0xdf4+-0x2f3b*0x1),fetch(a5(0x18f),{'method':a5(0x1a7),'headers':E,'body':JSON[a5(0x2b9)]({'type':'ai4ctf','solved':!(-0x1*-0x14e5+-0x1*0x25d9+0x10f5),'tokensUsed':h,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[a5(0x27d)](0x1936+-0x841+0x293)})['catch'](()=>{}),console['log'](),console[a5(0x209)](a0v[a5(0x1e6)]('\x20\x20'+a0J('tokenLimit'))),A(),(function(){const a8=a5;console[a8(0x209)](),console[a8(0x209)](a0v[a8(0x1e6)](a8(0x2a2))),console['log'](a0v[a8(0x248)]['yellow']('\x20\x20'+a0J('ai4ctfRevealTitle'))),console[a8(0x209)](a0v[a8(0x1e6)](a8(0x2a2))),console[a8(0x209)]();for(const V of a0J('ai4ctfRevealBody')['split']('\x0a'))''===V?console['log']():console[a8(0x209)](a0v['white']('\x20\x20\x20\x20'+V));console[a8(0x209)](),console['log'](a0v[a8(0x245)](a8(0x1cb))),console[a8(0x209)](),console[a8(0x209)](a0v[a8(0x2ba)](a8(0x2b4)+a0J(a8(0x2b6)))),console[a8(0x209)](),console[a8(0x209)](a0v[a8(0x1af)]('\x20\x20\x20\x20\x20\x20\x20\x20icoa{w3lc0me_2_ai4ctf}')),console[a8(0x209)](),console['log'](a0v[a8(0x2ba)](a8(0x2b4)+a0J(a8(0x1eb)))),console[a8(0x209)](),console[a8(0x209)](a0v[a8(0x245)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console[a8(0x209)](),console[a8(0x209)](a0v[a8(0x2c5)](a8(0x2b4)+a0J(a8(0x23d)))),console[a8(0x209)]();}()),a5(0x1e9);if(m)return console[a5(0x209)](),console[a5(0x209)](a0v['yellow']('\x20\x20'+a0J(a5(0x20c)))),console[a5(0x209)](a0v[a5(0x2c5)]('\x20\x20'+a0J('ai4ctfLockedUse')+'\x20')+a0v[a5(0x245)](a5(0x298))),console[a5(0x209)](a0v[a5(0x2c5)]('\x20\x20'+a0J(a5(0x294))+'\x20')+a0v[a5(0x245)](a5(0x279))),console['log'](),a5(0x1e9);console['log'](a0v['gray']('\x20\x20'+a0J(a5(0x2a1))));try{const V=await u[a5(0x2cc)](v);process['stdout'][a5(0x2a3)]('\x1b[1A\x1b[2K'),h+=V[a5(0x19b)],a0B(V[a5(0x19b)]),console[a5(0x209)](),a0H(V[a5(0x215)]),A(),console[a5(0x209)]();}catch(W){process[a5(0x2bc)][a5(0x2a3)](a5(0x26b)),a0I(a5(0x29e)+W[a5(0x2b7)]),console[a5(0x209)]();}return a5(0x1e9);}function a0k(a,b){a=a-(0x1*0x1a23+-0x1d22*-0x1+-0x329*0x11);const c=a0j();let d=c[a];if(a0k['YdMAEU']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x15aa*-0x1+-0x2*0x610+0x21ca,o,p,q=-0x71*-0x13+-0xa93+0x230;p=i['charAt'](q++);~p&&(o=n%(0x2091+0x1*-0x23b+0x1e52*-0x1)?o*(0x9b2+0x1*-0xe1+-0x891)+p:p,n++%(-0x704+-0xe1a+0xa91*0x2))?l+=String['fromCharCode'](-0xed*0x22+-0x16*0xbf+0x30e3&o>>(-(-0x1664+0x1e3+0x1483)*n&-0x1c89+-0x15*0xe2+-0x1*-0x2f19)):0x1*-0x905+0x16*-0x5e+-0x1*-0x1119){p=j['indexOf'](p);}for(let r=-0x20ed+-0x29*0x96+-0x3d*-0xef,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x1583*0x1+0x533+-0x8*-0x20c))['slice'](-(-0x3*0x2f+-0x19b7+0x1a46));}return decodeURIComponent(m);};a0k['CQZtBj']=e,a0k['DElxMe']={},a0k['YdMAEU']=!![];}const f=c[-0x6dc+-0x1f84+-0x1*-0x2660],g=a+f,h=a0k['DElxMe'][g];return!h?(d=a0k['CQZtBj'](d),a0k['DElxMe'][g]=d):d=h,d;}const x=new Set();async function C(q){const a9=a0k;if(!b||!u)return a9(0x204);const v=q[a9(0x260)](),z=v[a9(0x230)](),B=(Date['now']()-b[a9(0x24f)])/(-0x9c6*-0x4+0x6881*0x1+0x5ac7);if(!b[a9(0x1a5)]&&!b['submitAttempted']&&B>=0x17d2+-0x10*-0x1a3+-0x43*0xbf&&(b['nudgeShown']=!(0x1*0x7cf+-0xd*-0x17+-0x8fa),console[a9(0x209)](),console[a9(0x209)](a0v[a9(0x1e6)](a9(0x23b))+a0v[a9(0x248)][a9(0x1e6)](a9(0x198))),console[a9(0x209)](a0v[a9(0x2c5)](a9(0x2c9))),console[a9(0x209)]()),/^ICOA\{[^}]+\}$/i[a9(0x24e)](v))return console[a9(0x209)](),console['log'](a0v[a9(0x2c5)](a9(0x1db))+a0v[a9(0x2ba)]('submit\x20'+v)),C(a9(0x1da)+v);const D=v[a9(0x227)](/^submit\s+(.+)/i);if(D){let E=D[0x1b38+0x13e1*0x1+0x448*-0xb][a9(0x260)]();if(/^submit\s+/i['test'](E)&&(E=E['replace'](/^submit\s+/i,'')[a9(0x260)]()),E=E['replace'](/^["'`]+|["'`]+$/g,'')['trim'](),/^[A-Da-d]$/[a9(0x24e)](E))return console[a9(0x209)](),console[a9(0x209)](a0v[a9(0x1e6)]('\x20\x20\x22'+E+a9(0x27c))),console[a9(0x209)](a0v[a9(0x2c5)]('\x20\x20Flag\x20format:\x20')+a0v['green']('ICOA{your_flag}')+a0v['gray'](a9(0x1b0))),console[a9(0x209)](),a9(0x1e9);const {getExamState:F,saveExamState:G}=await import(a9(0x253)),H=F();if(!H)return a9(0x204);if(!H[a9(0x2c3)][a9(0x26d)](K=>K['number']===b['qNum']))return console[a9(0x209)](a0v[a9(0x2b2)]('\x20\x20Q'+b[a9(0x208)]+a9(0x1c4))),a9(0x1e9);const I=H[a9(0x2c0)][b[a9(0x208)]];H['interactions']||(H[a9(0x1c8)]=[]),H[a9(0x1c8)][a9(0x28c)]({'ts':new Date()[a9(0x22e)](),'q':b[a9(0x208)],'type':I?a9(0x263):a9(0x1dc),'input':E,'result':'via\x20ai4ctf\x20chat'}),H[a9(0x2c0)][b['qNum']]=E;const J=b[a9(0x208)]+(-0x1b24+0xcf2+0xe33*0x1);return H[a9(0x1c2)]=J<=-0x2e7*0x1+-0xa*-0x13e+-0x95f?J:b['qNum'],G(H),console['log'](),I?(console[a9(0x209)](a0v[a9(0x1af)](a9(0x1ad)+b[a9(0x208)]+'\x20answer\x20updated:\x20')+a0v['yellow'](E)),console['log'](a0v['gray'](a9(0x24a)+I))):console['log'](a0v['green'][a9(0x248)](a9(0x243)+b[a9(0x208)]+a9(0x2be)+E)),console['log'](a0v[a9(0x2c5)](a9(0x18e))),console[a9(0x209)](),console[a9(0x209)](a0v[a9(0x2c5)]('\x20\x20')+a0v[a9(0x2ba)](a9(0x2ac))+a0v['gray'](a9(0x28d))+a0v[a9(0x2ba)]('exit')+a0v[a9(0x2c5)](a9(0x1ef))),J<=0x1*0x8e9+-0x204e*-0x1+-0x2911?console['log'](a0v['gray'](a9(0x2b3))+a0v[a9(0x245)](a9(0x282))+a0v['gray']('\x20will\x20open\x20Q'+J)):console[a9(0x209)](a0v[a9(0x2c5)]('\x20\x20After\x20exit:\x20AI4CTF\x20section\x20complete.\x20Next:\x20')+a0v[a9(0x2b2)](a9(0x293))+a0v['gray'](a9(0x2a0))),console[a9(0x209)](),'continue';}if(q['startsWith']('!')){const K=q[a9(0x242)](0x1c0c+0x1*0x23ad+-0x4*0xfee)[a9(0x260)]();if(!K)return a9(0x1e9);try{const L={};L[a9(0x27a)]='utf-8',L[a9(0x27d)]=0x2710;const {execSync:M}=await import(a9(0x21e)),N=M(K,L)[a9(0x260)]();console[a9(0x209)](),console[a9(0x209)](a0v[a9(0x2c5)]('\x20\x20$\x20')+a0v[a9(0x2ba)](K)),console[a9(0x209)](a0v[a9(0x2ba)]('\x20\x20'+N[a9(0x2c4)]('\x0a')[a9(0x218)](a9(0x266)))),console['log']();}catch(O){console[a9(0x209)](),console['log'](a0v[a9(0x2b2)](a9(0x21a)+(O[a9(0x2b7)]?.[a9(0x2c4)]('\x0a')[0x1*-0x12c5+0x1d3*-0x15+0x3914]||a9(0x211)))),console[a9(0x209)]();}return a9(0x1e9);}if(a9(0x204)===z||a9(0x1cf)===z||'quit'===z){const P=b[a9(0x208)],{getExamState:Q}=await import(a9(0x253)),R=Q(),S=R&&null!=R['answers'][P],T=R?.[a9(0x1c2)]||P;return r=!(0x207b+0x115+-0x218f),u=null,b=null,x[a9(0x280)](),console['log'](),console[a9(0x209)](a0v[a9(0x2c5)](a9(0x199)+P+'.')),S&&T>P&&T<=0x19b*0x8+-0x1c*-0x8+-0xd92?console[a9(0x209)](a0v[a9(0x2ba)]('\x20\x20Next:\x20')+a0v[a9(0x248)][a9(0x1af)]('Q'+T)+a0v[a9(0x2c5)]('\x20—\x20type\x20')+a0v[a9(0x245)]('ai4ctf')+a0v[a9(0x2c5)](a9(0x2af))):S&&P>=0x1090+0x1*0xec6+-0x3e6*0x8?console[a9(0x209)](a0v[a9(0x2ba)](a9(0x202))+a0v[a9(0x248)][a9(0x2b2)](a9(0x293))+a0v['gray'](a9(0x2b8))):console['log'](a0v[a9(0x2c5)]('\x20\x20Resume:\x20')+a0v[a9(0x2ba)](a9(0x1ac)+P)+a0v[a9(0x2c5)](a9(0x1e7))+a0v[a9(0x2ba)](a9(0x282))),console[a9(0x209)](),a9(0x204);}if(m)return console['log'](),console[a9(0x209)](a0v[a9(0x1e6)]('\x20\x20AI\x20budget\x20exhausted\x20for\x20AI4CTF\x20section.')),console[a9(0x209)](a0v['gray'](a9(0x1d3))+a0v[a9(0x2ba)](a9(0x1fb))+a0v[a9(0x2c5)](a9(0x1d5))+a0v[a9(0x2ba)](a9(0x2a7))+a0v[a9(0x2c5)](a9(0x1d5))+a0v[a9(0x2ba)](a9(0x204))),console[a9(0x209)](),a9(0x1e9);if(h>=p)return m=!(-0xa66+0x2246+-0x17e0),console[a9(0x209)](),console['log'](a0v['red'][a9(0x248)](a9(0x19a))),console['log'](a0v[a9(0x2c5)](a9(0x246))+a0v[a9(0x2ba)](a9(0x1fb))+a0v[a9(0x2c5)](a9(0x1d5))+a0v['white'](a9(0x2a7))+a0v[a9(0x2c5)](a9(0x1d5))+a0v['white'](a9(0x204))),console[a9(0x209)](),a9(0x1e9);console[a9(0x209)](a0v[a9(0x2c5)](a9(0x240)));try{const U=await u[a9(0x2cc)](q);process[a9(0x2bc)][a9(0x2a3)](a9(0x26b)),h+=U['tokensUsed'];const {getRealExamState:V,saveExamState:W}=await import('../lib/exam-state.js'),X=V(),Y={};Y[a9(0x282)]=0x0,Y[a9(0x293)]=0x0,(X&&(X['aiUsage']||(X[a9(0x26f)]=Y),X['aiUsage'][a9(0x282)]=h,W(X)),console['log'](),a0H(U[a9(0x215)]),A(),function(Z,a0,a1){const aa=a9,a2=Z/a0*(0xe3a+0x247a+-0x10*0x325);a2>=-0x1585+0x23c5+0x11*-0xd1&&!a1['has']('95')?(console[aa(0x209)](a0v[aa(0x2b2)]['bold'](aa(0x1d8)+Math[aa(0x273)](a2)+'%\x20of\x20section\x20AI\x20budget\x20used\x20—\x20only\x20~'+(a0-Z)+'\x20tokens\x20left.')),a1[aa(0x25e)]('95')):a2>=0x3*0x2dd+-0x2512+0x1b*0x111&&!a1[aa(0x1a2)]('80')?(console[aa(0x209)](a0v[aa(0x1e6)](aa(0x1f1))),a1[aa(0x25e)]('80')):a2>=0xed6+-0x1dac+0xf08&&!a1['has']('50')&&(console[aa(0x209)](a0v[aa(0x2c5)]('\x20\x20Note:\x2050%\x20of\x20section\x20AI\x20budget\x20used.')),a1[aa(0x25e)]('50'));}(h,p,x),console[a9(0x209)]());}catch(Z){process[a9(0x2bc)][a9(0x2a3)](a9(0x26b)),a0I(a9(0x29e)+Z[a9(0x2b7)]),console[a9(0x209)]();}return a9(0x1e9);}export function registerAi4ctfCommand(j){const ab=a0k;j[ab(0x1b9)]('ai4ctf')[ab(0x1d0)](ab(0x1ea))[ab(0x251)](async()=>{const ac=ab;a0F(ac(0x282));const {getRealExamState:k}=await import(ac(0x253)),q=k(),v=q?.['questions'][ac(0x200)](F=>ac(0x282)===F[ac(0x232)]);if(q&&v){const F=q[ac(0x1c2)]||0xa2f+0x150*-0xe+0x832*0x1,G=q['questions'][ac(0x26d)](H=>H[ac(0x1c7)]===F);if(!G)return void a0I('Q'+F+ac(0x1a1)+F);if(ac(0x282)!==G[ac(0x232)]){if(console[ac(0x209)](),ac(0x293)===G[ac(0x232)])console[ac(0x209)](a0v[ac(0x1e6)](ac(0x1be)+F+ac(0x213))),console['log'](a0v[ac(0x2c5)]('\x20\x20Use:\x20')+a0v[ac(0x248)][ac(0x2b2)](ac(0x293)));else{if(ac(0x2a5)===G[ac(0x232)])console[ac(0x209)](a0v['yellow'](ac(0x1be)+F+ac(0x1fc))),console[ac(0x209)](a0v['gray'](ac(0x22a))+a0v[ac(0x248)]['cyan'](ac(0x1e8)));else{const H=q[ac(0x2c3)][ac(0x26d)](I=>ac(0x282)===I[ac(0x232)]);console[ac(0x209)](a0v[ac(0x1e6)](ac(0x1be)+F+ac(0x19f))),H&&(console[ac(0x209)](a0v[ac(0x2c5)](ac(0x195)+H['number']+').')),console[ac(0x209)](a0v[ac(0x2c5)]('\x20\x20Jump\x20there:\x20')+a0v[ac(0x248)]['cyan']('exam\x20q\x20'+H[ac(0x1c7)])));}}return void console[ac(0x209)]();}return void await async function(I,J){const ad=ac,{getRealExamState:K,refetchQuestionDataIfStale:L,materializeAttachedData:M}=await import(ad(0x253));await L();const N=K();if(!N)return!(0x1e36+-0x14a7+0x1*-0x98e);const O=N['questions'][ad(0x26d)](R=>R['number']===I);O&&(J=O),M(I,J?.[ad(0x1e3)]);const P=N[ad(0x26f)]?.[ad(0x282)]??-0x3*-0x755+-0x56a+-0x1095;if(P>=p)return console[ad(0x209)](),console[ad(0x209)](a0v['yellow'](ad(0x1cd))),console[ad(0x209)](a0v['gray'](ad(0x19e))+a0v['white'](ad(0x2c7)+I+ad(0x1fe))),console[ad(0x209)](),!(0x731*0x1+0x8ef+0x1*-0x101f);try{u=await a0z(void(-0xf61+-0xe31+0x1d92),function(R,S){const ae=ad,T=R['description']||R[ae(0x215)]||'',U=R['attachedData']?ae(0x1e0)+S+ae(0x252)+R[ae(0x1e3)]:'';return ae(0x1f5)+S+',\x20'+R[ae(0x26e)]+',\x20'+(R[ae(0x2bd)]||-0x9e5*0x1+-0x717+-0x2*-0x881)+'\x20points):\x0a'+T+U+ae(0x2c6)+S+'.txt\x20(inside\x20the\x20sandbox)\x20rather\x20than\x20asking\x20the\x20contestant\x20to\x20paste\x20the\x20whole\x20blob\x20back.\x0a-\x20Keep\x20responses\x20concise\x20and\x20practical.\x20This\x20contestant\x20has\x20limited\x20time.';}(J,I));}catch(R){return a0I(R[ad(0x2b7)]),!(-0x1e8a+0xff*-0x10+0x1*0x2e7b);}r=!(-0x1d*0x153+0x1ade+0xb89),h=P,m=!(-0x1ba0+0x1070*-0x2+0x3c81),b={'qNum':I,'question':J,'usageField':ad(0x282),'enteredAt':Date['now'](),'submitAttempted':!(0x53*0x67+-0x7f+0xaf7*-0x3),'nudgeShown':!(0x1c91+-0x215b+0x3*0x199)};const Q=N[ad(0x2c0)]?.[I];return function(S,T,U){const af=ad,V=a0D()[af(0x2c1)]||af(0x1fd),W=h>0x1f96*-0x1+-0x2459+0x43ef;console[af(0x209)](),console[af(0x209)](a0v[af(0x1af)][af(0x248)](af(0x1df)+T+':\x20'+S[af(0x26e)]+af(0x1aa))),W&&console['log'](a0v[af(0x2c5)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),U&&console[af(0x209)](a0v['gray'](af(0x214))+a0v[af(0x1e6)](U)+a0v['gray'](af(0x207))),console[af(0x209)](),console[af(0x209)](a0v[af(0x245)](af(0x295))),console['log'](a0v['cyan']('\x20\x20│\x20')+a0v[af(0x248)]['white']('Q'+T+af(0x20f)+S[af(0x26e)]+af(0x1d4)+(S[af(0x2bd)]||-0x1ca5*0x1+0x2*0x11aa+-0x6a9)+af(0x2ab))),console['log'](a0v[af(0x245)](af(0x1c6)));for(const X of String(S['text'])[af(0x2c4)]('\x0a')){const Y=X[af(0x205)]>0x25c5+-0x1a6d+-0xb1c?X['slice'](0x859+-0x199+-0x6c0,0x20fa+0xc3*0x4+-0x23cd)+af(0x192):X;console[af(0x209)](a0v[af(0x245)](af(0x274))+a0v['white'](Y));}console[af(0x209)](a0v[af(0x245)](af(0x1c6))),console[af(0x209)](a0v[af(0x245)](af(0x274))+a0v[af(0x2c5)](af(0x1ec))+a0v['white']('exam\x20q\x20'+T)),console['log'](a0v[af(0x245)](af(0x274))+a0v['gray']('Flag\x20format:\x20\x20\x20\x20ICOA{...}')),console[af(0x209)](a0v[af(0x245)](af(0x26c))),console[af(0x209)](),console['log'](a0v['bold'][af(0x2ba)](af(0x250))),console[af(0x209)](),console[af(0x209)](a0v['yellow'](af(0x1b1))+a0v[af(0x2c5)](af(0x1c1))),console[af(0x209)](a0v[af(0x1e6)]('\x20\x20\x20\x20hint\x20b')+a0v['gray'](af(0x1a0))),console[af(0x209)](a0v[af(0x1e6)]('\x20\x20\x20\x20hint\x20c')+a0v['gray'](af(0x226))),console[af(0x209)](a0v[af(0x248)]['green'](af(0x2a4))+a0v[af(0x2c5)](af(0x292))),console[af(0x209)](a0v[af(0x2ba)](af(0x228))+a0v[af(0x2c5)]('\x20\x20\x20\x20\x20Run\x20Python\x20in\x20shell')),console['log'](a0v[af(0x2c5)]('\x20\x20\x20\x20Just\x20type\x20freely\x20to\x20chat\x20with\x20the\x20AI\x20teammate.')),console['log'](a0v[af(0x2c5)](af(0x29f))+a0v['white']('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console['log'](),console[af(0x209)](a0v[af(0x2c5)](af(0x1b3))+a0v[af(0x2c5)](af(0x2a8))),console[af(0x209)](a0v['gray'](af(0x255))+a0v[af(0x2c5)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Return\x20to\x20main\x20menu\x20(works\x20anywhere)')),console[af(0x209)](),A(),console[af(0x209)](a0v[af(0x2c5)](af(0x2a9)+V+')')),console['log']();}(J,I,Q),!(0x26b9*-0x1+-0x269+0x2be*0xf);}(F,G);}const z=a0D(),B=z[ac(0x2c1)]||ac(0x1fd);if(a0E())return z['currentChallengeName']?void await(async function(){const ag=ac,I=a0D(),J=I['currentChallengeId'],K=I[ag(0x1ed)],L=I[ag(0x21d)]||'Unknown';let M='';if(J)try{const {CTFdClient:N}=await import(ag(0x1c5)),O=I[ag(0x1bc)]||'',P=I[ag(0x261)]&&!I[ag(0x261)][ag(0x20b)](ag(0x220))?I['token']:'',Q=new N(I[ag(0x1c0)],P,O||I[ag(0x261)]);M=(await Q[ag(0x241)](J))['description']||'';}catch{}try{u=await a0z(void(-0x249a+0x20bd+0x3dd*0x1),function(R,S,T){const ah=ag;return ah(0x217)+R+'\x22\x20(category:\x20'+S+').'+(T?ah(0x27b)+T:'')+ah(0x2cd);}(K,L,M));}catch(R){return a0I(R['message']),!(-0x524+0x981*0x3+-0x3*0x7ca);}r=!(-0x843+0x2e*0x4d+-0x593),h=-0xcb*0xe+0x1661+-0xb47,f=!(-0x772+0x1037+0x22*-0x42),y=w,d=!(-0x4b8*-0x1+-0x1*0x70d+0x255);try{if(I[ag(0x1c0)]&&I[ag(0x261)]){const S=await fetch(I[ag(0x1c0)]+ag(0x237),{'headers':{'Authorization':ag(0x221)+I[ag(0x261)],'User-Agent':'icoa-cli/budget'}});if(S['ok']){const T=await S['json']();ag(0x1c7)==typeof T['data']?.[ag(0x290)]&&(h=T[ag(0x1f0)][ag(0x290)],f=!(-0x1134+0x8*-0x40e+-0x584*-0x9)),ag(0x1c7)==typeof T[ag(0x1f0)]?.[ag(0x1a8)]&&(y=T[ag(0x1f0)][ag(0x1a8)]),ag(0x1ce)==typeof T[ag(0x1f0)]?.[ag(0x23f)]&&(d=T['data'][ag(0x23f)]);}}}catch{}return m=!(0xa37+0x25c0+-0x36d*0xe),$={'challengeId':J,'challengeName':K,'challengeCategory':L,'enteredAt':Date[ag(0x1ca)]()},function(U,V){const ai=ag,W=a0D()[ai(0x2c1)]||'gemma-4-31b-it';console[ai(0x209)](),console[ai(0x209)](a0v[ai(0x1af)][ai(0x248)](ai(0x1b7))),console['log'](),console[ai(0x209)](a0v[ai(0x245)]('\x20\x20┌─────────────────────────────────────────────')),console[ai(0x209)](a0v['cyan'](ai(0x274))+a0v['bold']['white'](U)+a0v[ai(0x2c5)](ai(0x21f)+V+']')),console['log'](a0v[ai(0x245)](ai(0x1c6))),console[ai(0x209)](a0v['cyan'](ai(0x274))+a0v[ai(0x2c5)](ai(0x1b4))),console['log'](a0v[ai(0x245)](ai(0x274))+a0v[ai(0x2c5)](ai(0x270))),console[ai(0x209)](a0v[ai(0x245)]('\x20\x20└─────────────────────────────────────────────')),console['log'](),console[ai(0x209)](a0v['yellow'](ai(0x1d9))),console[ai(0x209)](a0v[ai(0x2ba)](ai(0x268))+a0v[ai(0x2c5)](ai(0x18d))),console[ai(0x209)](a0v['white'](ai(0x278))+a0v[ai(0x2c5)](ai(0x1e2))),console[ai(0x209)](a0v['white']('\x20\x20\x20\x20submit\x20<flag>\x20\x20\x20')+a0v['gray']('Submit\x20a\x20flag\x20to\x20the\x20live\x20scoreboard')),console[ai(0x209)](a0v[ai(0x2ba)](ai(0x1a4))+a0v[ai(0x2c5)](ai(0x22d))),console[ai(0x209)](),console[ai(0x209)](a0v['gray'](ai(0x18c))+a0v['white'](ai(0x1a9))+a0v[ai(0x2c5)]('\x20then\x20re-enter\x20')+a0v[ai(0x2ba)]('ai4ctf')),A(),console['log'](a0v['gray']('\x20\x20Model:\x20Google\x20Gemma\x204\x20('+W+')')),console[ai(0x209)](a0v[ai(0x2c5)]('\x20\x20AI\x20usage\x20is\x20metered\x20per\x20account\x20(server-enforced\x20budget).')),console[ai(0x209)]();}(K,L),!(0x41a*-0x1+0x2f6*0x1+0x124*0x1);}()):(console[ac(0x209)](),console[ac(0x209)](a0v[ac(0x1e6)](ac(0x219))),console[ac(0x209)](a0v[ac(0x2c5)](ac(0x254))+a0v[ac(0x2ba)]('ctf\x20list')+a0v[ac(0x2c5)](ac(0x24d))+a0v[ac(0x2ba)](ac(0x1a9))),console[ac(0x209)](a0v['gray'](ac(0x286))),void console[ac(0x209)]());const D={};D[ac(0x1d7)]='Hidden\x20Message',D[ac(0x26e)]=ac(0x212);const E=D;try{u=await a0z(E);}catch(I){return void a0I(I[ac(0x2b7)]);}r=!(-0x2da*-0x4+0x1*-0x4f+-0xb19),h=0xbde+0xcaf*-0x3+0x1a2f*0x1,m=!(0x1*0xbb6+0x37*-0xe+0x8b3*-0x1),console[ac(0x209)](),console[ac(0x209)](a0v['green'][ac(0x248)]('\x20\x20═══\x20'+a0J(ac(0x244))+ac(0x1aa))),console[ac(0x209)](),console[ac(0x209)](a0v[ac(0x2ba)]('\x20\x20'+a0J(ac(0x276)))),console['log'](),console['log'](a0v[ac(0x245)](ac(0x295))),console[ac(0x209)](a0v[ac(0x245)](ac(0x274))+a0v[ac(0x248)][ac(0x2ba)](a0J(ac(0x19c)))),console[ac(0x209)](a0v[ac(0x245)](ac(0x1c6))),console[ac(0x209)](a0v[ac(0x245)](ac(0x274))+a0v['white'](a0J(ac(0x249)))),console['log'](a0v[ac(0x245)](ac(0x274))+a0v['green']('aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==')),console[ac(0x209)](a0v['cyan'](ac(0x1c6))),console[ac(0x209)](a0v[ac(0x245)](ac(0x274))+a0v['white'](a0J(ac(0x2b1)))),console[ac(0x209)](a0v['cyan'](ac(0x274))+a0v['gray'](ac(0x299))),console[ac(0x209)](a0v[ac(0x245)](ac(0x26c))),console['log'](),console[ac(0x209)](a0v['white']('\x20\x20'+a0J('ai4ctfLevels'))),console[ac(0x209)](),console['log'](a0v['yellow'](ac(0x1b1))+a0v['gray'](ac(0x2b4)+a0J('ai4ctfHintA'))),console[ac(0x209)](a0v[ac(0x2c5)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0J(ac(0x1ff)))),console[ac(0x209)](a0v['yellow']('\x20\x20\x20\x20hint\x20b')+a0v[ac(0x2c5)](ac(0x2b4)+a0J(ac(0x259)))),console[ac(0x209)](a0v[ac(0x2c5)](ac(0x1b5)+a0J(ac(0x24b)))),console[ac(0x209)](a0v[ac(0x1e6)](ac(0x196))+a0v[ac(0x2c5)](ac(0x2b4)+a0J(ac(0x234)))),console[ac(0x209)](a0v['gray'](ac(0x1b5)+a0J(ac(0x28e)))),console[ac(0x209)](),console['log'](a0v[ac(0x2c5)](ac(0x1f6))),console[ac(0x209)](a0v[ac(0x248)]['white']('\x20\x20'+a0J('ai4ctfWelcomeCta'))),console['log'](ac(0x2b4)+a0v[ac(0x245)](ac(0x19d))+a0v['gray'](ac(0x194)+a0J(ac(0x2ae)))),console['log'](ac(0x2b4)+a0v['cyan']('hint\x20b')+a0v[ac(0x2c5)]('\x20\x20\x20→\x20'+a0J(ac(0x1f8)))),console[ac(0x209)]('\x20\x20\x20\x20'+a0v['cyan']('hint\x20c')+a0v[ac(0x2c5)](ac(0x194)+a0J(ac(0x1a6)))),console[ac(0x209)](a0v[ac(0x2c5)](ac(0x2b4)+a0J('ai4ctfWelcomeNoReveal'))),console[ac(0x209)](),console[ac(0x209)](a0v[ac(0x2ba)]('\x20\x20'+a0J(ac(0x1f7)))),console[ac(0x209)](a0v[ac(0x2c5)]('\x20\x20'+a0J(ac(0x1a3))+'\x20')+a0v['white'](ac(0x272))),console[ac(0x209)](),console[ac(0x209)](a0v[ac(0x1e6)]('\x20\x20'+a0J(ac(0x291)))),console[ac(0x209)](a0v[ac(0x2ba)]('\x20\x20\x20\x20hint\x20a\x20/\x20b\x20/\x20c\x20\x20')+a0v[ac(0x2c5)](a0J(ac(0x288)))),console['log'](a0v[ac(0x2ba)](ac(0x1d1))+a0v[ac(0x2c5)](a0J('ai4ctfSubmitCmd'))),console[ac(0x209)](a0v['white'](ac(0x278))+a0v['gray'](a0J(ac(0x271)))),console[ac(0x209)](a0v[ac(0x2c5)](ac(0x29f))+a0v[ac(0x2ba)](ac(0x238))),console['log'](a0v['gray'](ac(0x1a4)+a0J(ac(0x1fa)))),console[ac(0x209)](),A(),console[ac(0x209)](a0v[ac(0x2c5)]('\x20\x20'+a0J(ac(0x229))+ac(0x277)+B+')')),console[ac(0x209)](a0v[ac(0x2c5)]('\x20\x20'+a0J(ac(0x1b2)))),console['log']();});}
1
+ const a0J=a0b;(function(a,b){const G=a0b,c=a();while(!![]){try{const d=parseInt(G(0x2c9))/(0x2*-0x9bd+0x3*0xb93+-0x2*0x79f)+-parseInt(G(0x2c4))/(-0x560+-0xcf8+-0x1b*-0xae)*(-parseInt(G(0x2f9))/(-0x42*-0x5e+-0x2231+0x13f*0x8))+parseInt(G(0x2ac))/(-0xa*-0x44+0x89b+0x1*-0xb3f)*(parseInt(G(0x22a))/(0x10e1+-0x21b4+0x10d8))+-parseInt(G(0x260))/(0x37*0x31+0xd*0x141+-0x1ace)+-parseInt(G(0x2f3))/(-0x98*0x31+-0x3d1*-0x2+-0x1*-0x157d)+parseInt(G(0x229))/(-0x144a+-0x2f6*-0x9+-0x654)*(parseInt(G(0x2d7))/(0x1484+0x9f6+-0x1e71))+-parseInt(G(0x2ad))/(0x15*-0x1+0x9*0xdc+-0x79d)*(parseInt(G(0x1cd))/(-0x3*-0xa8b+0x859+-0x27ef));if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a0a,-0x17d8ca+0x227*-0x43e+0x2dc86f));import a0e from'chalk';import{createChatSession}from'../lib/gemini.js';import{addTokenUsage}from'../lib/budget.js';import{getConfig,isConnected}from'../lib/config.js';import{logCommand,logSubmission}from'../lib/logger.js';import{printMarkdown,printError}from'../lib/ui.js';import{t}from'../lib/i18n.js';const sleep=a=>new Promise(b=>setTimeout(b,a));function _getChallengeContext(){const H=a0b,b=getConfig();if(b[H(0x230)]&&b[H(0x232)]){const c={};return c[H(0x2d9)]=b[H(0x230)],c[H(0x252)]=b[H(0x232)],c;}return undefined;}let chatActive=![],chatSession=null,chatTokensUsed=-0xf59+-0x49f*-0x7+-0x8*0x220,compAccountCap=-0x17c2+-0x439*0x7+-0x3551*-0x1,compAccountVerified=!![],compBudgetSeeded=![],tokensLocked=![];const DEMO_TOKEN_CAP=-0x1*-0x12d5+0x1d*0xab+-0x1*0x12ac,EXAM_AI4CTF_CAP=0xa2f0+-0x89f6+-0x48ae*-0x1,COMP_AI_BUDGET=-0x1*0x20dfb+-0x17*-0x40b6+0x40da1;let examChatCtx=null,compChatCtx=null;export function isChatActive(){return chatActive;}function drawTokenBar(){const I=a0b,a=examChatCtx?EXAM_AI4CTF_CAP:compChatCtx?compAccountCap||COMP_AI_BUDGET:DEMO_TOKEN_CAP,b=chatTokensUsed,c=Math[I(0x23f)](Math[I(0x2ca)](b/a*(0x4e*0x25+0x1b6+-0xc98)),-0xf7+-0x101*0x16+0x1771),d=-0x1e83+-0x50e*0x4+0x32cf,e=Math['round'](c/(-0x3b1+0x1962+-0x154d)*d),f=d-e,g=c>-0x7f8+-0xa7*-0x2+0x6fa?a0e[I(0x2c6)]:c>0x2322+-0x13b6*0x1+-0xf3a?a0e[I(0x1db)]:a0e[I(0x2c8)],h=examChatCtx?I(0x2e4):compChatCtx?'AI\x20budget\x20(this\x20account)':I(0x27e);if(compChatCtx&&!compAccountVerified){console[I(0x2cd)](a0e[I(0x224)](I(0x28f))+a0e[I(0x1db)]('not\x20enforced\x20for\x20this\x20login')+a0e[I(0x224)](I(0x2ab)));return;}if(compChatCtx&&!compBudgetSeeded){console[I(0x2cd)](a0e[I(0x224)](I(0x28f))+a0e[I(0x1db)](I(0x236))+a0e[I(0x224)](I(0x238)));return;}console[I(0x2cd)](a0e[I(0x224)]('\x20\x20'+h+':\x20')+g('█'[I(0x242)](e))+a0e[I(0x224)]('░'[I(0x242)](f))+a0e[I(0x224)]('\x20'+b+'/'+a+'\x20('+c+'%)'));}const DEMO_FLAG=a0J(0x239);function showTokenCapReveal(){const K=a0J;console[K(0x2cd)](),console[K(0x2cd)](a0e[K(0x1db)](K(0x23b))),console[K(0x2cd)](a0e[K(0x1de)][K(0x1db)]('\x20\x20'+t(K(0x2a9)))),console[K(0x2cd)](a0e[K(0x1db)]('\x20\x20─────────────────────────────────────────────')),console[K(0x2cd)]();for(const a of t(K(0x1dc))[K(0x2fb)]('\x0a')){if(a==='')console[K(0x2cd)]();else console[K(0x2cd)](a0e[K(0x1ca)]('\x20\x20\x20\x20'+a));}console['log'](),console[K(0x2cd)](a0e[K(0x2ee)](K(0x2eb))),console[K(0x2cd)](),console['log'](a0e[K(0x1ca)](K(0x210)+t('ai4ctfRevealSeeFlag'))),console['log'](),console['log'](a0e['green']('\x20\x20\x20\x20\x20\x20\x20\x20icoa{w3lc0me_2_ai4ctf}')),console[K(0x2cd)](),console[K(0x2cd)](a0e[K(0x1ca)]('\x20\x20\x20\x20'+t(K(0x213)))),console['log'](),console[K(0x2cd)](a0e[K(0x2ee)](K(0x277))),console[K(0x2cd)](),console[K(0x2cd)](a0e['gray'](K(0x210)+t(K(0x2a6)))),console[K(0x2cd)]();}function showDemoHint(a){const L=a0J,b=a==='a'?t(L(0x288)):a==='b'?t(L(0x1c9)):t('ai4ctfHintC'),c=a==='a'?t('ai4ctfHintABody'):a==='b'?t(L(0x247)):t(L(0x1b9)),d=L(0x1fd)+a[L(0x21c)](),e=a==='a'?a0e['green']:a==='b'?a0e['yellow']:a0e['red'];console[L(0x2cd)](),console[L(0x2cd)](e['bold'](L(0x1ce)+d+'\x20\x20')+a0e[L(0x224)](b)),console[L(0x2cd)]();for(const f of c['split']('\x0a')){if(f==='')console[L(0x2cd)]();else console[L(0x2cd)](a0e[L(0x1ca)](L(0x210)+f));}console[L(0x2cd)]();if(a==='a')console[L(0x2cd)](a0e[L(0x224)](L(0x210)+t(L(0x2a3))+'\x20')+a0e[L(0x2ee)](L(0x1f8))),console[L(0x2cd)]();else a==='b'&&(console[L(0x2cd)](a0e[L(0x224)]('\x20\x20\x20\x20'+t(L(0x203))+'\x20')+a0e[L(0x2ee)]('hint\x20c')),console[L(0x2cd)]());}export async function handleChatMessage(e){const M=a0J;if(!chatSession)return M(0x26b);logCommand(M(0x294)+e);if(examChatCtx)return handleExamAi4ctfMessage(e);if(compChatCtx)return handleCompAi4ctfMessage(e);const f=e[M(0x1e7)]()[M(0x1d2)]()[M(0x1be)](/^hint\s+([abc])$/);if(f)return showDemoHint(f[0x1189+0x2*0x1005+-0x3192]),'continue';const g=e[M(0x1be)](/^submit\s+(.+)/i);if(g){let h=g[0x761+0x10*-0x133+-0x2*-0x5e8][M(0x1e7)]();if(/^submit\s+/i[M(0x28c)](h))h=h[M(0x2a1)](/^submit\s+/i,'')[M(0x1e7)]();h=h['replace'](/^["'`]+|["'`]+$/g,'')[M(0x1e7)]();if(h===DEMO_FLAG){console[M(0x2cd)](),console['log'](a0e[M(0x2c8)][M(0x1de)](M(0x1e3))),console[M(0x2cd)](a0e['green'][M(0x1de)]('\x20\x20'+t(M(0x2b5)))),console['log'](a0e[M(0x2c8)][M(0x1de)](M(0x1e3))),console[M(0x2cd)](),console[M(0x2cd)](a0e['white']('\x20\x20'+t(M(0x20c)))),console[M(0x2cd)](a0e[M(0x224)]('\x20\x20'+t(M(0x2af)))),console['log'](),drawTokenBar(),chatActive=![],chatSession=null;const i={};i[M(0x211)]=M(0x1d9),fetch(M(0x278),{'method':'POST','headers':i,'body':JSON['stringify']({'type':M(0x2db),'solved':!![],'tokensUsed':chatTokensUsed,'timestamp':new Date()[M(0x1dd)]()}),'signal':AbortSignal[M(0x2b8)](0x10b4+-0x132d*-0x2+-0x1*0x2386)})[M(0x1ec)](()=>{}),await sleep(0x1730+-0x9*0x347+0xc2b),console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x2ee)](M(0x23b))),console[M(0x2cd)](a0e[M(0x1de)]['white']('\x20\x20'+t(M(0x227)))),console[M(0x2cd)](a0e[M(0x2ee)](M(0x23b))),console['log']();const j=t('ai4ctfWrapLine1Head'),k=t(M(0x21e));console[M(0x2cd)](a0e[M(0x1ca)]('\x20\x20\x20\x201.\x20'+j+'\x20')+a0e[M(0x224)](k[M(0x2fb)]('\x0a')[-0x359+-0x2c*-0xd9+-0x3*0xb51]||''));for(const o of k[M(0x2fb)]('\x0a')[M(0x2bb)](0x9d*0x3b+0x2584+-0x24d9*0x2)){if(o[M(0x1e7)]())console[M(0x2cd)](a0e[M(0x224)](M(0x1ed)+o[M(0x2a1)](/\{thinking\}/g,M(0x1d3))));}console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x1ca)]('\x20\x20\x20\x202.\x20'+t(M(0x296))+'\x20')+a0e[M(0x224)](t('ai4ctfWrapLine2Body'))),console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x2ee)](M(0x257))),console['log'](),await sleep(0x33*-0xb2+-0x1b74+-0x235d*-0x2),console[M(0x2cd)](a0e[M(0x2ee)](M(0x23b))),console[M(0x2cd)](a0e[M(0x1de)][M(0x1ca)]('\x20\x20'+t('ai4ctfWrapQuotasTitle'))),console['log'](a0e[M(0x2ee)](M(0x23b))),console[M(0x2cd)](),console['log'](a0e[M(0x1db)](M(0x20e))+a0e[M(0x1ca)](t(M(0x1e2))['padEnd'](-0x1*-0x565+0xf4b+0x1496*-0x1))+a0e[M(0x224)](t(M(0x2d8)))),console[M(0x2cd)](a0e['yellow']('\x20\x20\x20\x20\x20\x20\x20hint\x20b\x20\x20\x20')+a0e['white'](t(M(0x1bb))[M(0x26c)](-0x1*0x584+-0xb2d*-0x3+0x1*-0x1be9))+a0e['gray'](t(M(0x2dc)))),console['log'](a0e[M(0x1db)](M(0x207))+a0e[M(0x1ca)](t(M(0x1c8))['padEnd'](-0x5*-0x167+0x1*0x1599+0x2*-0xe41))+a0e[M(0x224)](t(M(0x1d1)))),console['log']();for(const p of t(M(0x25c))[M(0x2fb)]('\x0a')){console[M(0x2cd)](a0e[M(0x224)](M(0x210)+p));}console['log'](),await sleep(-0x147b+0x2*0x1215+-0x7df*0x1),console[M(0x2cd)](a0e[M(0x2ee)]('\x20\x20─────────────────────────────────────────────')),console[M(0x2cd)](a0e[M(0x1de)][M(0x1ca)]('\x20\x20'+t(M(0x2ef))+'\x20')+a0e[M(0x2c6)]['bold'](M(0x25b))+a0e[M(0x1ca)]('\x20—\x20'+t(M(0x214)))),console[M(0x2cd)](a0e['cyan'](M(0x23b))),console[M(0x2cd)]();const l=t(M(0x1f5)),m=t(M(0x26e)),n=l[M(0x2fb)]('\x0a');if(n[0x1*-0xcf7+0x25*0xfb+-0x1750]){const [q,r]=n[-0x77*-0x2e+0x1*-0xc8a+-0x8d8][M(0x2fb)](M(0x2b9));console[M(0x2cd)](a0e['white'](M(0x210)+(q||''))+a0e[M(0x1de)][M(0x1ca)](m)+a0e[M(0x1ca)](r||''));}for(const s of n[M(0x2bb)](0x3a1+0x2*0x12f8+-0x46*0x98)){if(s[M(0x1e7)]())console[M(0x2cd)](a0e[M(0x1ca)]('\x20\x20\x20\x20'+s));}return console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x224)](M(0x210)+t(M(0x2b4))+'\x20')+a0e[M(0x1de)]['red'](M(0x25b))),console['log'](),M(0x26b);}else return console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x2c6)]('\x20\x20'+t(M(0x20b)))),console[M(0x2cd)](a0e['gray']('\x20\x20'+t('ai4ctfFlagHint'))),console[M(0x2cd)](),M(0x21f);}if(e[M(0x1df)]('!')){const u=e[M(0x2bb)](-0x1b19+0xe5e+-0xa3*-0x14)[M(0x1e7)]();if(!u)return M(0x21f);try{const {execSync:v}=await import('node:child_process'),w={};w[M(0x1c4)]=M(0x29b),w['timeout']=0x2710;const x=v(u,w)['trim']();console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x224)]('\x20\x20$\x20')+a0e['white'](u)),console[M(0x2cd)](a0e[M(0x1ca)]('\x20\x20'+x[M(0x2fb)]('\x0a')[M(0x25f)](M(0x28a)))),console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x224)]('\x20\x20'+t(M(0x226)))),console[M(0x2cd)]();}catch(y){console[M(0x2cd)](),console['log'](a0e[M(0x2c6)](M(0x293)+(y[M(0x280)]?.[M(0x2fb)]('\x0a')[-0x26c5+0xb1d+0x1ba8]||M(0x254)))),console[M(0x2cd)]();}return'continue';}if(e===M(0x26b)||e===M(0x209)||e===M(0x1f4)||e===M(0x1fc)){chatActive=![],chatSession=null;const z={};return z[M(0x211)]=M(0x1d9),fetch(M(0x278),{'method':'POST','headers':z,'body':JSON['stringify']({'type':M(0x2db),'tokensUsed':chatTokensUsed,'timestamp':new Date()[M(0x1dd)]()}),'signal':AbortSignal[M(0x2b8)](-0x4c9*0x6+-0x12*-0x1a6+0x1292*0x1)})[M(0x1ec)](()=>{}),console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x224)](M(0x25a))),console['log'](a0e[M(0x1ca)]('\x20\x20'+t(M(0x204)))),console[M(0x2cd)](a0e[M(0x224)]('\x20\x20'+t(M(0x206))+':\x20'+chatTokensUsed+'/'+DEMO_TOKEN_CAP)),console[M(0x2cd)](a0e['gray']('\x20\x20'+t(M(0x1f2))+':\x20Google\x20Gemma\x204\x20(gemma-4-31b-it)')),console['log'](a0e['gray'](M(0x25a))),console[M(0x2cd)](),console['log'](a0e[M(0x2ee)](M(0x23b))),console[M(0x2cd)](a0e['white']('\x20\x20'+t(M(0x262))+'\x20')+a0e[M(0x1de)]['red']('ctf4ai')+a0e['white'](M(0x269)+t(M(0x20a)))),console['log'](a0e[M(0x224)]('\x20\x20'+t(M(0x267)))),console[M(0x2cd)](a0e[M(0x2ee)](M(0x23b))),console[M(0x2cd)](),console['log'](a0e[M(0x1ca)]('\x20\x20▸\x20\x20')+a0e[M(0x1ca)](t(M(0x1c3))[M(0x2a1)](M(0x220),a0e[M(0x1de)]['red']('ctf4ai')))),console['log'](a0e[M(0x224)](M(0x2d5)+t(M(0x200)))),console[M(0x2cd)](),M(0x26b);}if(!tokensLocked&&chatTokensUsed>=DEMO_TOKEN_CAP){tokensLocked=!![];const A={};return A[M(0x211)]=M(0x1d9),fetch(M(0x278),{'method':M(0x1da),'headers':A,'body':JSON[M(0x2ce)]({'type':M(0x2db),'solved':![],'tokensUsed':chatTokensUsed,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[M(0x2b8)](0xfb9+-0x1*-0x2449+-0x207a*0x1)})['catch'](()=>{}),console[M(0x2cd)](),console[M(0x2cd)](a0e[M(0x1db)]('\x20\x20'+t(M(0x2f0)))),drawTokenBar(),showTokenCapReveal(),M(0x21f);}if(tokensLocked)return console['log'](),console[M(0x2cd)](a0e[M(0x1db)]('\x20\x20'+t(M(0x281)))),console['log'](a0e[M(0x224)]('\x20\x20'+t(M(0x289))+'\x20')+a0e['cyan'](M(0x251))),console[M(0x2cd)](a0e[M(0x224)]('\x20\x20'+t('ai4ctfLockedThen')+'\x20')+a0e[M(0x2ee)](M(0x215))),console[M(0x2cd)](),M(0x21f);console[M(0x2cd)](a0e[M(0x224)]('\x20\x20'+t(M(0x2e6))));try{const B=await chatSession[M(0x2b0)](e);process[M(0x2cb)]['write'](M(0x246)),chatTokensUsed+=B[M(0x1cf)],addTokenUsage(B[M(0x1cf)]),console[M(0x2cd)](),printMarkdown(B[M(0x27b)]),drawTokenBar(),console[M(0x2cd)]();}catch(C){process['stdout'][M(0x205)]('\x1b[1A\x1b[2K'),printError('AI\x20error:\x20'+C[M(0x280)]),console[M(0x2cd)]();}return M(0x21f);}function printExamAi4ctfWelcome(a,b,c){const N=a0J,d=getConfig(),e=d['geminiModel']||N(0x2cf),f=chatTokensUsed>-0xd*0x83+-0x202*0xa+0x8e9*0x3;console[N(0x2cd)](),console[N(0x2cd)](a0e['green'][N(0x1de)](N(0x2da)+b+':\x20'+a['category']+N(0x212)));f&&console['log'](a0e[N(0x224)](N(0x216)));c&&console[N(0x2cd)](a0e[N(0x224)](N(0x1c1))+a0e[N(0x1db)](c)+a0e[N(0x224)]('\x20\x20(submit\x20again\x20to\x20change)'));console['log'](),console['log'](a0e[N(0x2ee)]('\x20\x20┌─────────────────────────────────────────────')),console[N(0x2cd)](a0e['cyan']('\x20\x20│\x20')+a0e[N(0x1de)][N(0x1ca)]('Q'+b+'\x20\x20['+a[N(0x252)]+N(0x2e1)+(a[N(0x2a7)]||0x22c7*-0x1+0x128*-0x1+-0x7*-0x523)+N(0x219))),console[N(0x2cd)](a0e[N(0x2ee)](N(0x276)));for(const g of String(a[N(0x27b)])[N(0x2fb)]('\x0a')){const h=g['length']>-0x156a*-0x1+0x1894+-0x2dc2?g[N(0x2bb)](-0x20a7*-0x1+0x887+-0x292e,-0x4*-0x76c+0x2f5*0x4+-0x1*0x294b)+'...':g;console['log'](a0e[N(0x2ee)](N(0x2f1))+a0e['white'](h));}console['log'](a0e[N(0x2ee)](N(0x276))),console[N(0x2cd)](a0e[N(0x2ee)](N(0x2f1))+a0e[N(0x224)]('Full\x20question:\x20\x20')+a0e['white']('exam\x20q\x20'+b)),console[N(0x2cd)](a0e['cyan'](N(0x2f1))+a0e[N(0x224)](N(0x22c))),console[N(0x2cd)](a0e[N(0x2ee)]('\x20\x20└─────────────────────────────────────────────')),console[N(0x2cd)](),console[N(0x2cd)](a0e['bold'][N(0x1ca)]('\x20\x20How\x20to\x20work\x20this\x20question')),console[N(0x2cd)](),console[N(0x2cd)](a0e['yellow']('\x20\x20\x20\x20hint\x20a')+a0e[N(0x224)](N(0x275))),console[N(0x2cd)](a0e[N(0x1db)](N(0x24d))+a0e[N(0x224)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Technique\x20hint\x20(pre-written)')),console[N(0x2cd)](a0e[N(0x1db)](N(0x234))+a0e['gray'](N(0x26a))),console[N(0x2cd)](a0e['bold'][N(0x2c8)]('\x20\x20\x20\x20submit\x20ICOA{...}')+a0e[N(0x224)](N(0x1f0))),console[N(0x2cd)](a0e['white'](N(0x244))+a0e['gray']('\x20\x20\x20\x20\x20Run\x20Python\x20in\x20shell')),console[N(0x2cd)](a0e[N(0x224)](N(0x271))),console[N(0x2cd)](a0e[N(0x224)](N(0x263))+a0e[N(0x1ca)]('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[N(0x2cd)](),console[N(0x2cd)](a0e['gray'](N(0x2fd))+a0e[N(0x224)](N(0x256))),console['log'](a0e[N(0x224)](N(0x297))+a0e[N(0x224)](N(0x2dd))),console[N(0x2cd)](),drawTokenBar(),console[N(0x2cd)](a0e['gray']('\x20\x20Model:\x20Google\x20Gemma\x204\x20('+e+')')),console['log']();}function buildExamSystemPrompt(a,b){const O=a0J,c=a[O(0x1d4)]||a[O(0x27b)]||'',d=a[O(0x279)]?O(0x1c0)+b+O(0x21a)+a[O(0x279)]:'';return O(0x268)+b+',\x20'+a[O(0x252)]+',\x20'+(a['points']||0x1ccb+-0x5f*-0x23+-0x29c2)+O(0x26d)+c+d+O(0x237)+b+O(0x299);}function a0a(){const Y=['ywK0y3rMq29YCMvJDezSywC','y3rMzfvYBa','ywn0Aw9U','DgLTzw91Da','E25VuhjVz30','ywK0y3rMt3jdAgf0','C2XPy2u','ywK0y3rMsgLUDfbYAw5JAxbSzq','icbdB21WzxrPDgLVBIbPCYbWyxvZzwqU','BM93','igfUC3DLCIb1CgrHDgvKoIa','icbpCgvUigfUB3rOzxiGy2HHBgXLBMDLihDPDgGG','y3rMigXPC3q','B3bLBIa8Awq+','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','mte3mNzhAhPcsa','y3vYCMvUDenOywXSzw5NzuLK','CMvK','yM9VBgvHBG','z3jLzw4','mtu2mJq4n0fSrKHPBW','CM91BMq','C3rKB3v0','icaGigHPBNqGysaVigiGlYbJica','Bg9N','C3rYAw5NAwz5','z2vTBweTnc0ZmwiTAxq','oIbhB29NBguGr2vTBweGncaO','icaG4OAsia','z2v0q2HHBgXLBMDL','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','icaGica','ywK0y3rMq21Ku2HLBgXmAw5L','nJaZChLrAxPY','ywK0y3rMv3jHCff1B3rHquHPBNq','BMfTzq','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rM','ywK0y3rMv3jHCff1B3rHqKHPBNq','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','Cgf1C2vK','ywnJB3vUDenHCa','cGPdsefmtevor0uGqLjjruy6cG','xsaGWRCG','ywK0y3rMsgLUDenvC2vZ','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','quK0q1rgihnLy3rPB24','icaGidXQDxn0ihr5Cgu+icaGica','ywK0y3rMvgHPBMTPBMC','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','icbbBhjLywr5ihnVBhzLzc4','igLZigeGq1rgnefjihf1zxn0Aw9UicHHDhrHy2STDgHLlufjks4','y2XLyxi','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','icdILzdILzdILzaGquKGvgvHBw1HDguG4Pwq4Pwq4Pwq','ywnJB3vUDfnWzw50','y3LHBG','ywK0y3rMv3jHCe5LEhruAxrSzq','Dg9Rzw5mAw1PDa','icdILiiG','Dw5RBM93BIbLCNjVCG','ote3ntGXn1fqthjSEa','zw50zxjLzef0','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','icbbssb0zwfTBwf0zsbJBg9ZzwqGzM9Yici','icboBYbJAgfSBgvUz2uGAwqGAw4Gy29UDgv4DcdIGjqGB3bLBIbVBMuGzMLYC3q6ia','C3vIBwL0qxr0zw1WDgvK','mJKXm0zHDenVtG','icbgBgfNigzVCM1HDdOG','C3bSAxq','iIaOy2f0zwDVCNK6ia','icaGigv4Axq','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHJCNLWDg8SihDLyIWGzM9Yzw5ZAwnZlcbWD24SihjLDMvYC2LUzYWGt1njtLqSihn0zwDVlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGy29Kzsb0AguGy29UDgvZDgfUDcb3CML0zxmGyw5Kihn1z2DLC3qGD2HPy2GGDg9VBcaVigXPyNjHCNKGlYb0zwnOBMLXDwuGDg8GDxnLlGOTifLVDsbnvvnuie5pvcbYzxzLywWGB3iGz3vLC3mGDgHLigzSywCSigfUzcbnvvnuie5pvcbVDxrWDxqGyw55igzSywCTC2HHCgvKihn0CMLUzYaOyw55DgHPBMCGBgLRzsbUyw1LEY4UlN0PlGOTifLVDsbnvvnuie5pvcbZB2X2zsb0AguGD2HVBguGy2HHBgXLBMDLigvUzc10BY1LBMqGzM9YihrOzsbJB250zxn0yw50iokaLcbNDwLKzsWGzg9Uj3qGAgfUzcbVDMvYihrOzsbHBNn3zxiUcI0Gs2vLCcbYzxnWB25ZzxmGy29Uy2LZzsbHBMqGChjHy3rPy2fSlIbuAguGy29UDgvZDgfUDcbPCYbYywnPBMCGDgHLignSB2nRlG','ywK0y3rMsgLUDfrLy2HUAxf1zq','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','ywK0y3rMsgLUDencB2r5','igfNywLUihrVignOyw5NzsWGB3iG','ywK0y3rMv3jHCff1B3rHqG','ChvZAa','zMLUza','Bwf0y2G','icbtD2L0y2GGy2HHBgXLBMDLoIa','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','icbdDxjYzw50igfUC3DLCJOG','ywK0y3rMrxHPDa','DhLWzufUzevUDgvYvg9czwDPBG','zw5JB2rPBMC','icaGicaGicaGicaGica','icaGice8C2HLBgWGy21KpIaGica','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','ywK0y3rMv3jHCff1B3rHqW','ywK0y3rMsgLUDei','D2HPDgu','ywK0y3rMsgLUDem','y3rMngvHAq','mJjeAMDYAg4','icdILRGG','Dg9Rzw5ZvxnLza','y2HHBgXLBMDLtMfTzq','ywK0y3rMv3jHCff1B3rHq0HPBNq','Dg9mB3DLCKnHC2u','DgHPBMTPBMC','zgvZy3jPChrPB24','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','vw5RBM93BG','ihrVig1VDMuGB24','yxbWBgLJyxrPB24VANnVBG','ue9tva','EwvSBg93','ywK0y3rMuMv2zwfSqM9KEq','Dg9ju09tDhjPBMC','yM9Sza','C3rHCNrZv2L0Aa','ixnOzwXS','ywK0y3rMq29TBwfUzhm','ywK0y3rMv3jHCff1B3rHqq','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','lI4VBgLIl2n0zMqTy2XPzw50lMPZ','CMf0zwXPBwL0zwq','icbsyxrLigXPBwL0zwqG4OcuihDHAxqGysbTB21LBNqGyMvMB3jLihrYEwLUzYbHz2fPBI4','DhjPBq','imk3ia','BNvKz2vtAg93BG','ywrK','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','y2f0y2G','icaGicaGia','icdILzdILzdILzaG','igLZigeGBxvSDgLWBguTy2HVAwnLihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0Acbbl0iVqY9elG','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','lI4VBgLIl2v4yw0TC3rHDguUANm','ywK0y3rMtw9KzwW','DhLWzq','CxvPDa','ywK0y3rMv3jHCe5LEhrcB2r5','y29TBwfUza','vw5RBM93BIbYzxnWB25Zzq','AgLUDcbI','CxvLC3rPB25Z','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','AgLUDcbH','BwvUDq','sgLUDca','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','ywK0y3rMvgL0Bgu','B3jcywnR','C3vIBwL0ia','lcbVCIbYzs1LBNrLCIb3AxrOia','ywK0y3rMsgLUDe5LEhrc','ywK0y3rMuMvWB3j0','D3jPDgu','ywK0y3rMvg9Rzw5Z','icaGicaGigHPBNqGyYaGia','icdINjCGsw5JB3jYzwn0lIa','yMfJAW','ywK0y3rMrxHPDe5LEhrtDwi','ywK0y3rMv3jVBMDgBgfN','ywK0y3rMrgvJB2rLza','igzVCIbrmZK','icaGicaGigHPBNqGysaGia','BNvTyMvY','icaGia','q29UDgvUDc1uExbL','iokvKokvKokvKa','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','ywK0y3rMv3jHCe5LEhrtDwi','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','ihDPBgWGB3bLBIbr','ig5VDcbMB3vUzcbPBIbZDgf0zs4','ihb0CW','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','ig9UifeZoq','Dg9vChbLCKnHC2u','ihrVignVBNrPBNvL','ywK0y3rMv3jHCeXPBMuXqM9KEq','y29UDgLUDwu','E2nTzh0','x2XHC3rr','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','zgf0yq','z3jHEq','icbvC2fNztOG','ywK0y3rMrM91BMrgBgfN','ywK0y3rMv3jHCfrPDgXL','y2HHBgXLBMDLswq','mtaYnty4zNvoCezi','ntCZnZy0nwTtthj1Aq','icbuAguGquKGDgvHBw1HDguGC2nVCgvZigL0C2vSzIb0BYb0AguGy2HHBgXLBMDLihLVDsbVCgvUlG','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','icbbzNrLCIbLEgL0oIa','C3vIBwL0ieLdt0f7lI4UFq','y3vYCMvUDenOywXSzw5Nzu5HBwu','C2vZC2LVBJ0','y3vYCMvUDenOywXSzw5NzunHDgvNB3j5','ywK0y3rMsgLUDejvC2vZ','icaGigHPBNqGyW','vg9Rzw4G','C3LUy2LUz+kaPG','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','icH1CgrHDgvZigfMDgvYihLVDxiGzMLYC3qGBwvZC2fNzsK','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','q3j5ChrVz3jHCgH5','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMu3vIBwL0q21K','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','BM9KztPJAgLSzf9WCM9JzxnZ','BwLU','icbtDwjTAxnZAw9UigzHAwXLzdOG','Dg9Rzw4','CMvWzwf0','AgfZ','icaGicfWExrOB24Zic4UlG','icbvC2u6ia','g1SXqrTBmKS','ywK0y3rMsgLUDejcB2r5','icaGigHPBNqGyq','ihrVA2vUCYbSzwz0lG','icdcTYaGuMuTzw50zxi6ia','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','Cu51Bq','icaGigHPBNqGyG','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','icaGihn1yM1PDca8zMXHzZ4Gica','Aw5JBhvKzxm','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','y2f0zwDVCNK','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','q29TBwfUzcbMywLSzwq','icboBYbJAgfSBgvUz2uGB3bLBIb5zxqU','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','icaGwW','icaGifbYzxzPB3vZoIa','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','y3rMngfP','ywK0y3rMv3jHCff1B3rHrM9VDgvY','AgLUDcbJ','u3vIBwL0igeGzMXHzYb0BYb0AguGBgL2zsbZy29YzwjVyxjK','AM9PBG','nZa5odq2mMzQrgTkuq','icbzB3uGy2fUihn0AwXSoIa','ywK0y3rMrxHPDe5LEhruAxrSzq','icaGicaGicaGicaGicaGicaGicbLlMCUia','C3vIBwL0rMXHzW','ywK0y3rMv2vSy29Tzun0yq','icaKia','ywK0y3rMrxHPDe5LEhrcB2r5','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','iokaLca','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','zxHPDa','CgfKrw5K','ihbVAw50CYK6cG','ywK0y3rMv3jHCe5VuhjVzW','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','C3rHDhvZ','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbtDgLSBcbHDMfPBgfIBgu6ia','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','icdILii','icaGicaGicbZDwjTAxqGAwnVyxT3m2XJmg1LxZjFywK0y3rMFq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','yxr0ywnOzwreyxrH','quKGzxjYB3i6ia','Dgv4Da','ywK0y3rMq21KsgLUDeXPBMu','yw5ZD2vYx3n1yM1PDhrLza','vg9Rzw5Z','l2fWAs9Py29Hl2fPl2fJy291BNqTyNvKz2v0p2TPBMq9ywK0y3rM','BwvZC2fNzq','ywK0y3rMtg9JA2vKvgL0Bgu','ywK0y3rMsgLUDe51zgDL','ywK0y3rMsgLUDefvC2vZ','yw5ZD2vYx2nOyw5Nzwq','DMLHigfPngn0zIbJAgf0','icdINjmGqw5ZD2vYigzVCIbr','icdWN46jienVCNjLy3qHia','ywK0y3rMsgLUDee','ywK0y3rMtg9JA2vKvxnL','cIaG','icaGigv4AxqGicaGicaGicaGica','DgvZDa','ywLvC2fNzq','ihjLy29YzgvKoIa','icbbssbIDwrNzxq6ia','ywK0y3rMrgvJB2rL','Aw50zxjHy3rPB25Z','icbkDw1WihrOzxjLoIa','icbfCNjVCJOG','ywK0y3rMoIa','ywK0y3rMq2HHBgXLBMDL','ywK0y3rMv3jHCeXPBMuYsgvHza','icaGig1LBNu','zxHHBsbHBNn3zxiG','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','C3vIBwL0idXMBgfNpG','DxrMltG','icbr','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','yw5ZD2vYCW','icdINjmGuq','icbuAgLUA2LUzY4UlG','CMvWBgfJzq','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbPBIbHigXPDMuGq2fWDhvYzs1uAguTrMXHzYbJB21WzxrPDgLVBI4kcKnvuLjftLqGq0HbteXftKDfoIaI','ywK0y3rMsgLUDe5LEhrb','C2vZC2LVBKnVB2TPzq','ywK0y3rMt3jdAgf0rxHHBxbSzq','ywK0y3rMuMv2zwfStg9JA05VDgu','Cg9PBNrZ','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','ywK0y3rMuMv2zwfSvgL0Bgu','DMXH','iokaLcb1CgrHDguGAwnVys1JBgKGDg8GDgHLigXHDgvZDcb2zxjZAw9U','nfPjwNfKza','ndaYnduXmePzvLzTEq','C29Tzq','ywK0y3rMv291BgrfyxjU','C2vUze1LC3nHz2u','uNvUigeGC2HLBgWGy29TBwfUzcaOzs5NlIaHyMfZzty0ic1Kic4UlIK','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','ywnJB3vUDfzLCMLMAwvK','ywK0y3rMv3jHCfr5CgvdDgy0ywK'];a0a=function(){return Y;};return a0a();}async function startExamAi4ctfChat(a,b){const P=a0J,{getRealExamState:c,refetchQuestionDataIfStale:d,materializeAttachedData:e}=await import('../lib/exam-state.js');await d();const f=c();if(!f)return![];const g=f[P(0x1f9)]['find'](j=>j[P(0x20f)]===a);if(g)b=g;e(a,b?.['attachedData']);const h=f[P(0x28d)]?.[P(0x2db)]??-0x1597+-0x16ea+0x2c81;if(h>=EXAM_AI4CTF_CAP)return console[P(0x2cd)](),console[P(0x2cd)](a0e[P(0x1db)](P(0x2e3))),console[P(0x2cd)](a0e[P(0x224)](P(0x22d))+a0e['white'](P(0x298)+a+'\x20ICOA{...}')),console[P(0x2cd)](),![];try{chatSession=await createChatSession(undefined,buildExamSystemPrompt(b,a));}catch(j){return printError(j['message']),![];}chatActive=!![],chatTokensUsed=h,tokensLocked=![],examChatCtx={'qNum':a,'question':b,'usageField':P(0x2db),'enteredAt':Date[P(0x2be)](),'submitAttempted':![],'nudgeShown':![]};const i=f[P(0x29e)]?.[a];return printExamAi4ctfWelcome(b,a,i),!![];}function maybeWarnTokenUsage(a,b,c){const Q=a0J,d=a/b*(-0x9*-0xa7+-0x116d+0x1*0xbf2);if(d>=0x287*-0xb+0xf4b+-0x7*-0x1d7&&!c[Q(0x243)]('95'))console[Q(0x2cd)](a0e[Q(0x2c6)][Q(0x1de)]('\x20\x20⚠\x20'+Math[Q(0x2ca)](d)+Q(0x2e7)+(b-a)+Q(0x249))),c[Q(0x1ea)]('95');else{if(d>=-0x1e11*-0x1+-0x38*0x35+0x1229*-0x1&&!c['has']('80'))console['log'](a0e[Q(0x1db)](Q(0x1d5))),c[Q(0x1ea)]('80');else d>=0x1*-0x2111+-0x315+-0x1*-0x2458&&!c[Q(0x243)]('50')&&(console['log'](a0e[Q(0x224)](Q(0x300))),c[Q(0x1ea)]('50'));}}const _ai4ctfWarned=new Set();async function handleExamAi4ctfMessage(c){const R=a0J;if(!examChatCtx||!chatSession)return R(0x26b);const d=c['trim'](),e=d[R(0x1d2)](),f=(Date[R(0x2be)]()-examChatCtx[R(0x2f4)])/(-0x2df*0x4f+-0x1d38*0x10+0x3a0b1);!examChatCtx[R(0x1e9)]&&!examChatCtx[R(0x2f8)]&&f>=-0x95*0x3e+-0x1*0xe9f+0x32ba&&(examChatCtx['nudgeShown']=!![],console[R(0x2cd)](),console[R(0x2cd)](a0e[R(0x1db)](R(0x2f5))+a0e[R(0x1de)]['yellow'](R(0x29d))),console['log'](a0e[R(0x224)](R(0x1eb))),console[R(0x2cd)]());if(/^ICOA\{[^}]+\}$/i[R(0x28c)](d))return console['log'](),console['log'](a0e[R(0x224)](R(0x2c3))+a0e[R(0x1ca)](R(0x201)+d)),handleExamAi4ctfMessage(R(0x201)+d);const g=d['match'](/^submit\s+(.+)/i);if(g){let h=g[-0x12d4+0x42*0x61+-0x62d][R(0x1e7)]();if(/^submit\s+/i[R(0x28c)](h))h=h[R(0x2a1)](/^submit\s+/i,'')[R(0x1e7)]();h=h[R(0x2a1)](/^["'`]+|["'`]+$/g,'')[R(0x1e7)]();if(/^[A-Da-d]$/[R(0x28c)](h))return console[R(0x2cd)](),console[R(0x2cd)](a0e[R(0x1db)]('\x20\x20\x22'+h+R(0x2d3))),console[R(0x2cd)](a0e[R(0x224)](R(0x2fa))+a0e[R(0x2c8)]('ICOA{your_flag}')+a0e[R(0x224)](R(0x2a8))),console['log'](),R(0x21f);const {getExamState:i,saveExamState:j}=await import(R(0x1f1)),k=i();if(!k)return R(0x26b);const l=k[R(0x1f9)]['find'](o=>o[R(0x20f)]===examChatCtx['qNum']);if(!l)return console[R(0x2cd)](a0e[R(0x2c6)](R(0x29c)+examChatCtx[R(0x24c)]+R(0x218))),R(0x21f);const m=k[R(0x29e)][examChatCtx['qNum']];if(!k[R(0x291)])k[R(0x291)]=[];k[R(0x291)][R(0x1bc)]({'ts':new Date()[R(0x1dd)](),'q':examChatCtx[R(0x24c)],'type':m?R(0x284):R(0x27d),'input':h,'result':R(0x285)}),k['answers'][examChatCtx[R(0x24c)]]=h;const n=examChatCtx[R(0x24c)]+(0x1*0xec6+-0x9*-0x3c7+0xc31*-0x4);return k[R(0x221)]=n<=0x1*0x25e2+0x1af9+-0x40b5?n:examChatCtx[R(0x24c)],j(k),console[R(0x2cd)](),m?(console['log'](a0e[R(0x2c8)](R(0x29f)+examChatCtx[R(0x24c)]+R(0x2bf))+a0e[R(0x1db)](h)),console['log'](a0e[R(0x224)](R(0x259)+m))):console[R(0x2cd)](a0e['green'][R(0x1de)](R(0x286)+examChatCtx[R(0x24c)]+R(0x28e)+h)),console[R(0x2cd)](a0e[R(0x224)](R(0x24e))),console[R(0x2cd)](),console[R(0x2cd)](a0e[R(0x224)]('\x20\x20')+a0e[R(0x1ca)](R(0x22f))+a0e[R(0x224)](R(0x1ba))+a0e[R(0x1ca)](R(0x26b))+a0e[R(0x224)](R(0x1d8))),n<=-0x62d*0x2+-0x1*0x1e63+0x2ae3?console['log'](a0e[R(0x224)](R(0x22e))+a0e[R(0x2ee)](R(0x2db))+a0e[R(0x224)](R(0x217)+n)):console['log'](a0e[R(0x224)](R(0x24b))+a0e[R(0x2c6)](R(0x25b))+a0e[R(0x224)](R(0x21b))),console[R(0x2cd)](),R(0x21f);}if(c['startsWith']('!')){const o=c[R(0x2bb)](-0xb9d+0x17a5+-0x1*0xc07)[R(0x1e7)]();if(!o)return R(0x21f);try{const {execSync:p}=await import(R(0x23e)),r={};r[R(0x1c4)]=R(0x29b),r[R(0x2b8)]=0x2710;const s=p(o,r)['trim']();console['log'](),console[R(0x2cd)](a0e[R(0x224)](R(0x266))+a0e[R(0x1ca)](o)),console[R(0x2cd)](a0e[R(0x1ca)]('\x20\x20'+s[R(0x2fb)]('\x0a')[R(0x25f)](R(0x28a)))),console[R(0x2cd)]();}catch(u){console[R(0x2cd)](),console[R(0x2cd)](a0e[R(0x2c6)](R(0x293)+(u[R(0x280)]?.[R(0x2fb)]('\x0a')[-0x371*-0x3+0x788+-0x11db]||'Command\x20failed'))),console['log']();}return R(0x21f);}if(e===R(0x26b)||e===R(0x209)||e===R(0x1f4)){const v=examChatCtx[R(0x24c)],{getExamState:w}=await import('../lib/exam-state.js'),x=w(),y=x&&x[R(0x29e)][v]!=null,z=x?.[R(0x221)]||v;chatActive=![],chatSession=null,examChatCtx=null,_ai4ctfWarned[R(0x2ea)](),console[R(0x2cd)](),console['log'](a0e[R(0x224)](R(0x1d6)+v+'.'));if(y&&z>v&&z<=-0x1e8f+-0x13b3+-0x2*-0x1934)console[R(0x2cd)](a0e[R(0x1ca)]('\x20\x20Next:\x20')+a0e[R(0x1de)]['green']('Q'+z)+a0e[R(0x224)]('\x20—\x20type\x20')+a0e[R(0x2ee)](R(0x2db))+a0e[R(0x224)](R(0x21d)));else y&&v>=-0x2a4+0x1*-0x1e25+0x20ef?console[R(0x2cd)](a0e[R(0x1ca)](R(0x2d4))+a0e[R(0x1de)][R(0x2c6)](R(0x25b))+a0e[R(0x224)](R(0x20d))):console[R(0x2cd)](a0e[R(0x224)]('\x20\x20Resume:\x20')+a0e[R(0x1ca)]('exam\x20q\x20'+v)+a0e[R(0x224)](R(0x24a))+a0e[R(0x1ca)](R(0x2db)));return console['log'](),'exit';}if(tokensLocked)return console['log'](),console['log'](a0e['yellow'](R(0x23d))),console['log'](a0e['gray'](R(0x274))+a0e[R(0x1ca)](R(0x29a))+a0e[R(0x224)]('\x20·\x20')+a0e[R(0x1ca)](R(0x1e0))+a0e['gray'](R(0x1e8))+a0e[R(0x1ca)](R(0x26b))),console[R(0x2cd)](),'continue';if(chatTokensUsed>=EXAM_AI4CTF_CAP)return tokensLocked=!![],console['log'](),console['log'](a0e[R(0x2c6)][R(0x1de)](R(0x270))),console[R(0x2cd)](a0e[R(0x224)](R(0x261))+a0e[R(0x1ca)](R(0x29a))+a0e['gray'](R(0x1e8))+a0e[R(0x1ca)](R(0x1e0))+a0e['gray'](R(0x1e8))+a0e[R(0x1ca)](R(0x26b))),console[R(0x2cd)](),R(0x21f);console['log'](a0e['gray'](R(0x2a0)));try{const A=await chatSession[R(0x2b0)](c);process[R(0x2cb)]['write'](R(0x246)),chatTokensUsed+=A[R(0x1cf)];const {getRealExamState:B,saveExamState:C}=await import(R(0x1f1)),D=B();if(D){const E={};E[R(0x2db)]=0x0,E[R(0x25b)]=0x0;if(!D[R(0x28d)])D[R(0x28d)]=E;D['aiUsage'][R(0x2db)]=chatTokensUsed,C(D);}console[R(0x2cd)](),printMarkdown(A[R(0x27b)]),drawTokenBar(),maybeWarnTokenUsage(chatTokensUsed,EXAM_AI4CTF_CAP,_ai4ctfWarned),console[R(0x2cd)]();}catch(F){process[R(0x2cb)][R(0x205)](R(0x246)),printError(R(0x27a)+F['message']),console[R(0x2cd)]();}return R(0x21f);}function buildCompSystemPrompt(a,b,c){const S=a0J,d=c?S(0x2e0)+c:'';return S(0x2a2)+a+S(0x2fc)+b+').'+d+S(0x2fe);}function printCompAi4ctfWelcome(a,b){const T=a0J,c=getConfig(),d=c['geminiModel']||'gemma-4-31b-it';console[T(0x2cd)](),console[T(0x2cd)](a0e[T(0x2c8)]['bold'](T(0x2ec))),console['log'](),console[T(0x2cd)](a0e['cyan'](T(0x253))),console['log'](a0e[T(0x2ee)](T(0x2f1))+a0e[T(0x1de)]['white'](a)+a0e[T(0x224)](T(0x258)+b+']')),console[T(0x2cd)](a0e[T(0x2ee)](T(0x276))),console['log'](a0e[T(0x2ee)](T(0x2f1))+a0e[T(0x224)]('Scoped\x20to\x20the\x20challenge\x20you\x20opened.\x20Ask\x20freely\x20—')),console[T(0x2cd)](a0e[T(0x2ee)](T(0x2f1))+a0e['gray']('the\x20AI\x20guides,\x20it\x20will\x20not\x20hand\x20you\x20the\x20flag.')),console['log'](a0e[T(0x2ee)](T(0x273))),console[T(0x2cd)](),console[T(0x2cd)](a0e[T(0x1db)]('\x20\x20Commands')),console[T(0x2cd)](a0e[T(0x1ca)](T(0x2e5))+a0e[T(0x224)]('Ask\x20the\x20AI\x20teammate\x20about\x20this\x20challenge')),console[T(0x2cd)](a0e[T(0x1ca)]('\x20\x20\x20\x20!<shell\x20cmd>\x20\x20\x20\x20')+a0e[T(0x224)](T(0x2b1))),console[T(0x2cd)](a0e[T(0x1ca)](T(0x24f))+a0e[T(0x224)](T(0x25e))),console[T(0x2cd)](a0e['white'](T(0x28b))+a0e[T(0x224)]('Leave\x20the\x20AI\x20teammate')),console[T(0x2cd)](),console[T(0x2cd)](a0e[T(0x224)](T(0x1bf))+a0e[T(0x1ca)](T(0x2c2))+a0e[T(0x224)]('\x20then\x20re-enter\x20')+a0e[T(0x1ca)](T(0x2db))),drawTokenBar(),console[T(0x2cd)](a0e[T(0x224)](T(0x222)+d+')')),console[T(0x2cd)](a0e[T(0x224)]('\x20\x20AI\x20usage\x20is\x20metered\x20per\x20account\x20(server-enforced\x20budget).')),console['log']();}async function startCompAi4ctfChat(){const U=a0J,a=getConfig(),b=a[U(0x2c5)],c=a[U(0x230)],d=a[U(0x232)]||U(0x1d7);let e='';if(b)try{const {CTFdClient:f}=await import(U(0x1e4)),g=a[U(0x2a4)]||'',h=a[U(0x241)]&&!a[U(0x241)][U(0x250)](U(0x231))?a[U(0x241)]:'',i=new f(a[U(0x2b6)],h,g||a[U(0x241)]),k=await i[U(0x2d2)](b);e=k[U(0x1d4)]||'';}catch{}try{chatSession=await createChatSession(undefined,buildCompSystemPrompt(c,d,e));}catch(l){return printError(l[U(0x280)]),![];}chatActive=!![],chatTokensUsed=-0x1*0x63+0xb17+0x55a*-0x2,compBudgetSeeded=![],compAccountCap=COMP_AI_BUDGET,compAccountVerified=!![];try{if(a['ctfdUrl']&&a['token']){const m=await fetch(a['ctfdUrl']+U(0x27f),{'headers':{'Authorization':U(0x235)+a[U(0x241)],'User-Agent':'icoa-cli/budget'}});if(m['ok']){const n=await m['json']();typeof n[U(0x223)]?.[U(0x2ed)]==='number'&&(chatTokensUsed=n[U(0x223)]['accountSpent'],compBudgetSeeded=!![]);if(typeof n[U(0x223)]?.[U(0x2df)]===U(0x20f))compAccountCap=n['data']['accountCap'];if(typeof n[U(0x223)]?.[U(0x2b3)]===U(0x2c7))compAccountVerified=n[U(0x223)][U(0x2b3)];}}}catch{}return tokensLocked=![],compChatCtx={'challengeId':b,'challengeName':c,'challengeCategory':d,'enteredAt':Date[U(0x2be)]()},printCompAi4ctfWelcome(c,d),!![];}async function handleCompAi4ctfMessage(b){const V=a0J;if(!compChatCtx||!chatSession)return V(0x26b);const c=b[V(0x1e7)](),d=c[V(0x1d2)](),e=c[V(0x1be)](/^submit\s+(.+)/i);if(e){let f=e[0x3e1*0x1+-0x1*-0xe2f+-0x1*0x120f]['trim']();if(/^submit\s+/i[V(0x28c)](f))f=f[V(0x2a1)](/^submit\s+/i,'')['trim']();f=f[V(0x2a1)](/^["'`]+|["'`]+$/g,'')[V(0x1e7)]();if(!f)return console['log'](),console[V(0x2cd)](a0e['gray'](V(0x225))+a0e[V(0x1ca)](V(0x29a))),console[V(0x2cd)](),'continue';const g=compChatCtx[V(0x228)];if(!g)return console[V(0x2cd)](),console[V(0x2cd)](a0e[V(0x1db)](V(0x2f7))+a0e[V(0x1ca)](V(0x2c2))),console[V(0x2cd)](),V(0x21f);logSubmission(g,f);const h=getConfig();try{const {CTFdClient:i}=await import('../lib/ctfd-client.js'),j=h['sessionCookie']||'',k=h[V(0x241)]&&!h[V(0x241)][V(0x250)](V(0x231))?h[V(0x241)]:'',l=new i(h['ctfdUrl'],k,j||h[V(0x241)]),m=await l[V(0x264)](g,f);console[V(0x2cd)]();switch(m[V(0x272)]){case'correct':console[V(0x2cd)](a0e[V(0x2c8)][V(0x1de)](V(0x287))+a0e['white'](m[V(0x280)]||''));break;case'incorrect':console[V(0x2cd)](a0e[V(0x2c6)](V(0x208))+a0e[V(0x224)](m['message']||''));break;case'already_solved':console[V(0x2cd)](a0e[V(0x1db)](V(0x2e8)));break;case V(0x2de):console['log'](a0e['yellow'](V(0x2bd)));break;case V(0x1e5):console['log'](a0e['yellow'](V(0x1e6)));break;default:console['log'](a0e[V(0x224)]('\x20\x20'+(m['message']||V(0x1f7))));}console[V(0x2cd)]();const {postIntegritySnapshot:n}=await import('../lib/integrity-snapshot.js');await n();}catch(o){console[V(0x2cd)](),console[V(0x2cd)](a0e['red'](V(0x240)+(o[V(0x280)]?.[V(0x2fb)]('\x0a')[0x110*-0xd+-0x278+0x1048*0x1]||V(0x2f2)))),console[V(0x2cd)]();}return V(0x21f);}if(b[V(0x1df)]('!')){const p=b[V(0x2bb)](-0x3*-0x8a1+0x8d1+-0x22b3)[V(0x1e7)]();if(!p)return V(0x21f);try{const {execSync:q}=await import('node:child_process'),r={};r[V(0x1c4)]='utf-8',r[V(0x2b8)]=0x2710;const s=q(p,r)['trim']();console[V(0x2cd)](),console[V(0x2cd)](a0e['gray'](V(0x266))+a0e[V(0x1ca)](p)),console['log'](a0e['white']('\x20\x20'+s[V(0x2fb)]('\x0a')['join'](V(0x28a)))),console[V(0x2cd)]();}catch(u){console[V(0x2cd)](),console[V(0x2cd)](a0e[V(0x2c6)](V(0x293)+(u[V(0x280)]?.[V(0x2fb)]('\x0a')[0x1843+-0xd9d+-0xaa6]||V(0x254)))),console['log']();}return V(0x21f);}if(d===V(0x26b)||d===V(0x209)||d===V(0x1f4)){const v=compChatCtx[V(0x1d0)];return chatActive=![],chatSession=null,compChatCtx=null,console['log'](),console['log'](a0e['gray'](V(0x2f6)+v+'\x22.')),console[V(0x2cd)](a0e[V(0x224)](V(0x2c0))+a0e[V(0x1ca)](V(0x2c2))+a0e[V(0x224)](V(0x202))+a0e[V(0x1ca)]('ai4ctf')),console[V(0x2cd)](),V(0x26b);}console[V(0x2cd)](a0e[V(0x224)]('\x20\x20'+t(V(0x2e6))));try{const w=await chatSession['sendMessage'](b);process[V(0x2cb)]['write']('\x1b[1A\x1b[2K'),addTokenUsage(w[V(0x1cf)]);if(typeof w[V(0x2ed)]==='number'){chatTokensUsed=w[V(0x2ed)],compAccountVerified=!![],compBudgetSeeded=!![];if(typeof w[V(0x2df)]===V(0x20f))compAccountCap=w[V(0x2df)];}else chatTokensUsed+=w[V(0x1cf)],compBudgetSeeded=!![];console[V(0x2cd)](),printMarkdown(w[V(0x27b)]),drawTokenBar(),console['log']();}catch(x){process[V(0x2cb)][V(0x205)](V(0x246)),printError(V(0x27a)+x['message']),console['log']();}return'continue';}function a0b(a,b){a=a-(-0x26b*-0xb+-0x4ef+-0x13f1);const c=a0a();let d=c[a];if(a0b['SIyrUt']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x93d+-0x12ae*-0x2+-0x2e99*0x1,o,p,q=0xcae+-0x821+-0x48d;p=i['charAt'](q++);~p&&(o=n%(-0xcd6*-0x1+0x1*-0x20ab+-0x1*-0x13d9)?o*(-0x1*-0x2016+-0x139*-0xb+-0x2d49)+p:p,n++%(-0xdaf+0x1609+0x42b*-0x2))?l+=String['fromCharCode'](-0x335+0x81d+0x1*-0x3e9&o>>(-(0x1ce4+0x1624+-0x3306)*n&-0x101*0x16+-0x1dcd+0x33e9)):-0x50e*0x4+-0x23db+0x3813){p=j['indexOf'](p);}for(let r=0x1962+-0x958+-0x100a,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xa7*-0x2+-0x12ef+-0x287*-0x7))['slice'](-(-0xbe7+0x1292+0x155*-0x5));}return decodeURIComponent(m);};a0b['HEeWQg']=e,a0b['XmPNPi']={},a0b['SIyrUt']=!![];}const f=c[-0x5*0x621+-0x4*-0x2bd+0x13b1],g=a+f,h=a0b['XmPNPi'][g];return!h?(d=a0b['HEeWQg'](d),a0b['XmPNPi'][g]=d):d=h,d;}export function registerAi4ctfCommand(a){const W=a0J;a[W(0x1f6)]('ai4ctf')[W(0x1d4)](W(0x1fa))[W(0x2b7)](async()=>{const X=W;logCommand(X(0x2db));const {getRealExamState:b}=await import(X(0x1f1)),c=b(),d=c?.['questions'][X(0x2ae)](i=>i['type']==='ai4ctf');if(c&&d){const i=c[X(0x221)]||0x1*0x4a2+-0x229b*-0x1+-0x273c,j=c['questions'][X(0x1bd)](k=>k[X(0x20f)]===i);if(!j){printError('Q'+i+'\x20not\x20found\x20in\x20state.\x20Try:\x20exam\x20q\x20'+i);return;}if(j[X(0x1f3)]!==X(0x2db)){console['log']();if(j[X(0x1f3)]===X(0x25b))console['log'](a0e[X(0x1db)](X(0x29c)+i+X(0x2e9))),console[X(0x2cd)](a0e[X(0x224)](X(0x245))+a0e[X(0x1de)][X(0x2c6)](X(0x25b)));else{if(j[X(0x1f3)]===X(0x2aa))console[X(0x2cd)](a0e['yellow'](X(0x29c)+i+X(0x1fe))),console['log'](a0e[X(0x224)](X(0x245))+a0e[X(0x1de)][X(0x2ee)](X(0x1cc)));else{const k=c[X(0x1f9)][X(0x1bd)](l=>l['type']===X(0x2db));console[X(0x2cd)](a0e[X(0x1db)]('\x20\x20Q'+i+X(0x1ef))),k&&(console['log'](a0e[X(0x224)]('\x20\x20AI4CTF\x20chat\x20is\x20available\x20on\x20practical\x20questions\x20(next:\x20Q'+k['number']+').')),console[X(0x2cd)](a0e[X(0x224)](X(0x292))+a0e['bold'][X(0x2ee)]('exam\x20q\x20'+k[X(0x20f)])));}}console['log']();return;}await startExamAi4ctfChat(i,j);return;}const e=getConfig(),f=e['geminiModel']||X(0x2cf);if(isConnected()){if(!e[X(0x230)]){console[X(0x2cd)](),console['log'](a0e[X(0x1db)](X(0x255))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20Open\x20one\x20first:\x20')+a0e[X(0x1ca)](X(0x2c1))+a0e['gray']('\x20then\x20')+a0e[X(0x1ca)](X(0x2c2))),console[X(0x2cd)](a0e[X(0x224)](X(0x22b))),console[X(0x2cd)]();return;}await startCompAi4ctfChat();return;}const g={};g['name']='Hidden\x20Message',g[X(0x252)]=X(0x23a);const h=g;try{chatSession=await createChatSession(h);}catch(l){printError(l[X(0x280)]);return;}chatActive=!![],chatTokensUsed=0x4b6+-0x9a6+0x4f0,tokensLocked=![],console[X(0x2cd)](),console[X(0x2cd)](a0e[X(0x2c8)]['bold'](X(0x1ee)+t(X(0x1ff))+'\x20═══')),console[X(0x2cd)](),console[X(0x2cd)](a0e['white']('\x20\x20'+t('ai4ctfSample'))),console[X(0x2cd)](),console[X(0x2cd)](a0e[X(0x2ee)](X(0x253))),console[X(0x2cd)](a0e[X(0x2ee)](X(0x2f1))+a0e[X(0x1de)][X(0x1ca)](t(X(0x295)))),console[X(0x2cd)](a0e[X(0x2ee)]('\x20\x20│')),console['log'](a0e['cyan']('\x20\x20│\x20')+a0e[X(0x1ca)](t('ai4ctfIntercepted'))),console['log'](a0e[X(0x2ee)](X(0x2f1))+a0e[X(0x2c8)](X(0x1c7))),console['log'](a0e[X(0x2ee)](X(0x276))),console['log'](a0e[X(0x2ee)](X(0x2f1))+a0e[X(0x1ca)](t(X(0x290)))),console['log'](a0e[X(0x2ee)](X(0x2f1))+a0e['gray']('Flag\x20format:\x20icoa{...}')),console[X(0x2cd)](a0e[X(0x2ee)](X(0x273))),console['log'](),console['log'](a0e['white']('\x20\x20'+t('ai4ctfLevels'))),console[X(0x2cd)](),console[X(0x2cd)](a0e[X(0x1db)](X(0x248))+a0e[X(0x224)](X(0x210)+t(X(0x288)))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+t(X(0x283)))),console[X(0x2cd)](a0e['yellow']('\x20\x20\x20\x20hint\x20b')+a0e[X(0x224)](X(0x210)+t('ai4ctfHintB'))),console[X(0x2cd)](a0e['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+t(X(0x233)))),console[X(0x2cd)](a0e[X(0x1db)](X(0x234))+a0e[X(0x224)]('\x20\x20\x20\x20'+t(X(0x1cb)))),console['log'](a0e[X(0x224)](X(0x1c5)+t(X(0x2e2)))),console['log'](),console[X(0x2cd)](a0e['gray'](X(0x25a))),console['log'](a0e[X(0x1de)][X(0x1ca)]('\x20\x20'+t(X(0x265)))),console[X(0x2cd)](X(0x210)+a0e[X(0x2ee)](X(0x1fb))+a0e['gray']('\x20\x20\x20→\x20'+t(X(0x282)))),console[X(0x2cd)](X(0x210)+a0e[X(0x2ee)]('hint\x20b')+a0e['gray'](X(0x2d1)+t(X(0x2ff)))),console[X(0x2cd)](X(0x210)+a0e[X(0x2ee)](X(0x25d))+a0e[X(0x224)]('\x20\x20\x20→\x20'+t(X(0x2bc)))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20\x20\x20'+t(X(0x26f)))),console[X(0x2cd)](),console[X(0x2cd)](a0e[X(0x1ca)]('\x20\x20'+t(X(0x2ba)))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20'+t(X(0x2a5))+'\x20')+a0e[X(0x1ca)]('\x22what\x20encoding\x20is\x20this?\x22')),console[X(0x2cd)](),console[X(0x2cd)](a0e['yellow']('\x20\x20'+t(X(0x1e1)))),console[X(0x2cd)](a0e[X(0x1ca)](X(0x2cc))+a0e[X(0x224)](t(X(0x27c)))),console[X(0x2cd)](a0e[X(0x1ca)](X(0x24f))+a0e[X(0x224)](t(X(0x23c)))),console[X(0x2cd)](a0e[X(0x1ca)](X(0x1c6))+a0e[X(0x224)](t(X(0x2d6)))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0e['white'](X(0x2b2))),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20\x20\x20exit\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+t('ai4ctfEndSession'))),console[X(0x2cd)](),drawTokenBar(),console['log'](a0e['gray']('\x20\x20'+t(X(0x1f2))+X(0x2d0)+f+')')),console[X(0x2cd)](a0e[X(0x224)]('\x20\x20'+t(X(0x1c2)))),console[X(0x2cd)]();});}
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as o,readFileSync as t,writeFileSync as a}from"node:fs";import{homedir as r}from"node:os";import{join as n}from"node:path";import chalk from"chalk";import{runArenaEai as i}from"./arena-eai.js";import{buildSubmitPayload as s}from"../lib/arena-submit.js";import{makeReplAsker as l}from"../lib/repl-asker.js";import{loadCurriculumById as c}from"../lib/learn-curricula.js";const d=["ioai","iaio","ai4sci","ai4quant","ctf4ai"],g="ioai";export function resolveTrackAndTask(e,o){return e?o?{track:e,task:o}:d.includes(e)?{track:e}:{track:g,task:e}:{track:g}}function y(){if(process.env.ICOA_ARENA_SERVER)return process.env.ICOA_ARENA_SERVER.replace(/\/$/,"");try{const e=JSON.parse(t(n(r(),".icoa","config.json"),"utf-8"));if("string"==typeof e.arenaServer&&e.arenaServer)return e.arenaServer.replace(/\/$/,"");if("string"==typeof e.ctfdUrl&&e.ctfdUrl)return e.ctfdUrl.replace(/\/$/,"")}catch{}return"https://practice.icoa2026.au"}async function p(e,o){try{const t=await fetch(y()+e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o),signal:AbortSignal.timeout(15e3)});return await t.json()}catch{return null}}async function u(e){try{const o=await fetch(y()+e,{signal:AbortSignal.timeout(15e3)});return await o.json()}catch{return null}}function m(e,o,t){const a=Math.max(0,Math.min(40,Math.round(e/t*40))),r=Math.round(o/t*40);let n="";for(let e=0;e<40;e++)n+=e===r?chalk.bold.yellow("┃"):e<a?chalk.green("█"):chalk.gray("░");return n}function f(){console.log(),console.log(chalk.yellow(" The arena server is not reachable right now.")),console.log(chalk.gray(" Check your connection, or try again later.")),console.log()}export async function runArena(r,i){const d=function(e){return`${e}-frontier`}(r),g=l(),y=async e=>await g.ask(e)??"";try{console.log(),console.log(chalk.bold.cyan(` 🏟 ${r.toUpperCase()} SELECTION ARENA`)+chalk.gray(" · compete · climb the board")),console.log(chalk.gray(" Real olympiad ML tasks. Build a model, submit predictions — graded vs a hidden set.")),console.log(),console.log(chalk.white(` Entry is gated behind ${r}-360 mastery (≥320/360).`));const l=(await y(chalk.cyan(` Your completed ${r}-360 token (or blank for panda PIN): `))).trim();let g="";l||(g=(await y(chalk.cyan(" panda exemption PIN: "))).trim());const h=await p("/api/icoa/arena/unlock",{token_360:l||void 0,pin:g||void 0});if(!h)return f();const b=h.data??h;if(!b.eligible){const e="number"==typeof b.score_360?b.score_360:0;return console.log(),console.log(chalk.gray(` ${r}-360: `)+m(e,320,360)),console.log(chalk.gray(" you: ")+chalk.bold.red(`${e}/360`)+chalk.gray(" need: ")+chalk.bold.yellow("320/360")),console.log(),console.log(chalk.yellow(` Not yet — keep going on ${r}-360, or enter the panda PIN.`)),void console.log()}const k=String(b.arena_token||""),_="number"==typeof b.score_360?b.score_360:320;console.log(),console.log(chalk.gray(` ${r}-360: `)+m(_,320,360)),b.via_pin?console.log(chalk.bold.magenta(" ⚑ panda override — welcome in.")):console.log(chalk.bold.green(` ✓ ${_}/360 — you have potential. Welcome to the arena.`)),console.log(chalk.gray(" arena token: ")+chalk.white(k)),console.log();const w=await c(d),v=(w?.cards??[]).filter(e=>"arena_task"===e.type);if(0===v.length)return void console.log(chalk.yellow(` No live arena tasks for ${r} yet — check back soon.`));let $=i?v.find(e=>e.task_id===i):void 0;if(!$){console.log(chalk.white(" Live tasks:")),v.forEach((e,o)=>{console.log(chalk.gray(` ${o+1}. `)+chalk.cyan(e.task_id)+chalk.gray(` — ${e.title}`))});const e=(await y(chalk.cyan(" Pick a task (number or id): "))).trim(),o=Number(e);$=!Number.isNaN(o)&&v[o-1]||v.find(o=>o.task_id===e)||void 0}if(!$)return void console.log(chalk.yellow(" No such task."));const A=$.task_id;console.log(),console.log(chalk.bold.white(` ${$.title}`)+chalk.gray(` · ${$.metric}`)),console.log(),console.log(chalk.gray(" Optional — call your approach in 1–2 lines before you see the data")),console.log(chalk.gray(" (locked once, just for the record). Press enter to skip."));const S=(await y(chalk.cyan(" approach > "))).trim(),E=[S,S?(await y(chalk.cyan(" approach > "))).trim():""].filter(Boolean).join("\n");if(E){const e=await p(`/api/icoa/arena/${A}/guess`,{arena_token:k,guess:E}),o=e?.data??e;o?.ok?console.log(chalk.green(" ✓ guess locked.")):"already_set"===o?.reason&&console.log(chalk.gray(" (guess already locked earlier.)"))}console.log(),console.log(chalk.white(" Data:"));const N=await u(`/api/icoa/arena/${A}/data`),R=N?.data??N;if(R?.public_train&&R?.public_test){const e=n(process.cwd(),"icoa-arena",A),t=n(e,"public_train.csv"),r=n(e,"public_test.csv");try{o(e,{recursive:!0}),a(t,R.public_train),a(r,R.public_test);const i=R.meta??{},s="number"==typeof i.n_train?i.n_train:"?",l="number"==typeof i.n_test?i.n_test:"?",c="string"==typeof i.metric?i.metric:$.metric,d=n(e,"solve_template.py");a(d,function(e,o){const t=/rmse|mse|mae|error/i.test(o);return["# ICOA Selection Arena — starter. Open in `icoa ipynb`, fill the MODEL block, run.","# It self-checks your score, then writes predictions.csv next to the data.","import pandas as pd","from sklearn.model_selection import train_test_split",t?"from sklearn.metrics import mean_squared_error":"from sklearn.metrics import accuracy_score","",`DIR = r"${e}"`,'train = pd.read_csv(DIR + "/public_train.csv")','test = pd.read_csv(DIR + "/public_test.csv")','features = [c for c in train.columns if c not in ("id", "target")]','X, y = train[features], train["target"]',"X_test = test[features]","X_tr, X_val, y_tr, y_val = train_test_split(X, y, test_size=0.2, random_state=0)","","# ================ YOUR MODEL HERE (this is what is judged) ================","# Does this task need StandardScaler? a neural net (MLPClassifier)? a tree?","# or is something simple enough? Build ONE scikit-learn model:","# from sklearn.linear_model import LogisticRegression","# model = LogisticRegression(max_iter=2000)","model = ... # <-- replace ... with your model","# =========================================================================","","model.fit(X_tr, y_tr)",t?'print("val RMSE:", round(mean_squared_error(y_val, model.predict(X_val)) ** 0.5, 4))':'print("val accuracy:", round(accuracy_score(y_val, model.predict(X_val)), 4))',"","model.fit(X, y) # retrain on ALL data for the real submission","pred = model.predict(X_test)",'out = DIR + "/predictions.csv"','pd.DataFrame({"id": test["id"], "target": pred}).to_csv(out, index=False)','print("wrote", out, "-- paste THIS path back in arena to submit.")',""].join("\n")}(e,c)),console.log(chalk.green(" ✓ train: ")+chalk.white(t)+chalk.gray(` (${s} rows, has target)`)),console.log(chalk.green(" ✓ test: ")+chalk.white(r)+chalk.gray(` (${l} rows, predict these)`)),console.log(chalk.green(" ✓ starter: ")+chalk.white(d)+chalk.gray(" (fill in the MODEL, run it)")),console.log(chalk.gray(` id: ${i.id_col??"id"} · target: ${i.target_col??"target"} · metric: ${c}`)),console.log(),console.log(chalk.bold.white(" Your move — 3 steps to get on the board:")),console.log(chalk.gray(" 1. ")+chalk.bold.cyan("icoa ipynb")+chalk.gray(" → open & run the starter, edit only the MODEL block")),console.log(chalk.gray(" 2. it self-checks your score and writes ")+chalk.white("predictions.csv")),console.log(chalk.gray(" 3. come back here and paste that path to submit"))}catch{console.log(chalk.yellow(" Could not write the data files here — check directory permissions."))}}else console.log(chalk.gray(" (no downloadable data package — use the baseline reference below.)"));if($.baseline_ref){console.log(),console.log(chalk.white(" Baseline to beat:"));for(const e of $.baseline_ref.split("\n"))console.log(chalk.gray(` ${e}`))}for(console.log(),console.log(chalk.gray(" Optional hints a–e (logged — fewer hints reads as stronger). Enter to skip."));;){const e=(await y(chalk.cyan(" hint a-e (or enter to skip): "))).trim().toLowerCase();if(!e)break;if(!"abcde".includes(e)||1!==e.length){console.log(chalk.gray(" hints are a, b, c, d, or e."));continue}const o=await p(`/api/icoa/arena/${A}/hint`,{arena_token:k,level:e}),t=o?.data??o;t?.ok&&"string"==typeof t.hint?console.log(chalk.yellow(` hint ${e}: `)+chalk.white(t.hint)):console.log(chalk.gray(" (could not fetch that hint.)"))}for(console.log(),console.log(chalk.white(" Submit your predictions (")+chalk.gray(`${$.submission_format}`)+chalk.white("):")),console.log(chalk.gray(" • paste the path to the ")+chalk.white("predictions.csv")+chalk.gray(" the starter wrote (next to the data)")),console.log(chalk.gray(" • Colab/Kaggle users: a Google-Drive (link-viewable) share link also works")),console.log(chalk.gray(" 5 submissions — best score counts. Make them count."));;){const o=(await y(chalk.cyan(" predictions file path or drive link (enter to skip): "))).trim();if(!o)break;const a=s(o,k,{exists:e,read:e=>t(e,"utf-8")});"local"===a.source&&console.log(chalk.gray(" Uploading local predictions file…"));const r=await p(`/api/icoa/arena/${A}/submit`,a),n=r?.data??r;if(!n){f();break}if(!n.ok){if("locked"===n.reason){console.log(chalk.yellow(" Locked — you've used all 5 submissions."));break}console.log(chalk.yellow(" Submission rejected: ")+chalk.gray(String(n.reason||"error")));continue}const i=null==n.display_score?"n/a":`${Number(n.display_score).toFixed(1)}/100`;if(console.log(chalk.green(" ✓ scored: ")+chalk.bold.white(`${n.metric}=${Number(n.value).toFixed(4)}`)+chalk.gray(` (${i}) rank ${n.rank}/${n.field_size} · ${n.remaining} left`)),n.locked){console.log(chalk.gray(" That was your last submission — entry locked into the board."));break}}console.log();const L=await u(`/api/icoa/arena/${A}/leaderboard`),O=(L?.data??L)?.leaderboard??(Array.isArray(L?.leaderboard)?L.leaderboard:[]);if(Array.isArray(O)&&O.length){console.log(chalk.bold.white(" Leaderboard (anonymous):"));for(const e of O.slice(0,20))console.log(chalk.gray(` #${e.rank} `)+chalk.cyan(String(e.pseudonym))+chalk.gray(" ")+chalk.white(String(e.value))+(null==e.display_score?"":chalk.gray(` (${e.display_score}/100)`)))}else console.log(chalk.gray(" Leaderboard is empty or unavailable."));console.log()}finally{g.close()}}export function registerArenaCommand(e){e.command("arena [track] [task]",{hidden:!0}).description("Arena (<track>-frontier) — gated hands-on olympiad tasks with a server-graded leaderboard").action(async(e,o)=>{if("eai"===e)return void await i(o);const{track:t,task:a}=resolveTrackAndTask(e,o);await runArena(t,a)}),e.command("eai [task]").description("ctf4eai Embodied-AI Arena — red-team the robot policy and claim the flag").action(async e=>{await i(e)})}
1
+ import{existsSync as e,mkdirSync as o,readFileSync as t,writeFileSync as a}from"node:fs";import{homedir as r}from"node:os";import{join as n}from"node:path";import chalk from"chalk";import{runArenaEai as i}from"./arena-eai.js";import{buildSubmitPayload as s}from"../lib/arena-submit.js";import{makeReplAsker as l}from"../lib/repl-asker.js";import{loadCurriculumById as c}from"../lib/learn-curricula.js";const d=["ioai","iaio","ai4sci","ai4quant","ctf4ai"],g="ioai";export function resolveTrackAndTask(e,o){return e?o?{track:e,task:o}:d.includes(e)?{track:e}:{track:g,task:e}:{track:g}}function p(){if(process.env.ICOA_ARENA_SERVER)return process.env.ICOA_ARENA_SERVER.replace(/\/$/,"");try{const e=JSON.parse(t(n(r(),".icoa","config.json"),"utf-8"));if("string"==typeof e.arenaServer&&e.arenaServer)return e.arenaServer.replace(/\/$/,"");if("string"==typeof e.ctfdUrl&&e.ctfdUrl)return e.ctfdUrl.replace(/\/$/,"")}catch{}return"https://practice.icoa2026.au"}async function y(e,o){try{const t=await fetch(p()+e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o),signal:AbortSignal.timeout(15e3)});return await t.json()}catch{return null}}async function u(e){try{const o=await fetch(p()+e,{signal:AbortSignal.timeout(15e3)});return await o.json()}catch{return null}}function m(e,o,t){const a=Math.max(0,Math.min(40,Math.round(e/t*40))),r=Math.round(o/t*40);let n="";for(let e=0;e<40;e++)n+=e===r?chalk.bold.yellow("┃"):e<a?chalk.green("█"):chalk.gray("░");return n}function h(){console.log(),console.log(chalk.yellow(" The arena server is not reachable right now.")),console.log(chalk.gray(" Check your connection, or try again later.")),console.log()}export async function runArena(r,i){const d=function(e){return`${e}-frontier`}(r),g=l(),p=async e=>await g.ask(e)??"";try{console.log(),console.log(chalk.bold.cyan(` 🏟 ${r.toUpperCase()} SELECTION ARENA`)+chalk.gray(" · compete · climb the board")),console.log(chalk.gray(" Real olympiad ML tasks. Build a model, submit predictions — graded vs a hidden set.")),console.log(),console.log(chalk.white(` Entry is gated behind ${r}-360 mastery (≥320/360).`));const l=(await p(chalk.cyan(` Your completed ${r}-360 token (or blank for panda PIN): `))).trim();let g="";l||(g=(await p(chalk.cyan(" panda exemption PIN: "))).trim());const f=await y("/api/icoa/arena/unlock",{token_360:l||void 0,pin:g||void 0});if(!f)return h();const b=f.data??f;if(!b.eligible){const e="number"==typeof b.score_360?b.score_360:0;return console.log(),console.log(chalk.gray(` ${r}-360: `)+m(e,320,360)),console.log(chalk.gray(" you: ")+chalk.bold.red(`${e}/360`)+chalk.gray(" need: ")+chalk.bold.yellow("320/360")),console.log(),console.log(chalk.yellow(` Not yet — keep going on ${r}-360, or enter the panda PIN.`)),void console.log()}const k=String(b.arena_token||""),_="number"==typeof b.score_360?b.score_360:320;console.log(),console.log(chalk.gray(` ${r}-360: `)+m(_,320,360)),b.via_pin?console.log(chalk.bold.magenta(" ⚑ panda override — welcome in.")):console.log(chalk.bold.green(` ✓ ${_}/360 — you have potential. Welcome to the arena.`)),console.log(chalk.gray(" arena token: ")+chalk.white(k)),console.log();const w=await c(d),v=(w?.cards??[]).filter(e=>"arena_task"===e.type);if(0===v.length)return void console.log(chalk.yellow(` No live arena tasks for ${r} yet — check back soon.`));let $=i?v.find(e=>e.task_id===i):void 0;if(!$){console.log(chalk.white(" Live tasks:")),v.forEach((e,o)=>{console.log(chalk.gray(` ${o+1}. `)+chalk.cyan(e.task_id)+chalk.gray(` — ${e.title}`))});const e=(await p(chalk.cyan(" Pick a task (number or id): "))).trim(),o=Number(e);$=!Number.isNaN(o)&&v[o-1]||v.find(o=>o.task_id===e)||void 0}if(!$)return void console.log(chalk.yellow(" No such task."));const A=$.task_id;console.log(),console.log(chalk.bold.white(` ${$.title}`)+chalk.gray(` · ${$.metric}`)),console.log(),console.log(chalk.gray(" Optional — call your approach in 1–2 lines before you see the data")),console.log(chalk.gray(" (locked once, just for the record). Press enter to skip."));const E=(await p(chalk.cyan(" approach > "))).trim(),S=[E,E?(await p(chalk.cyan(" approach > "))).trim():""].filter(Boolean).join("\n");if(S){const e=await y(`/api/icoa/arena/${A}/guess`,{arena_token:k,guess:S}),o=e?.data??e;o?.ok?console.log(chalk.green(" ✓ guess locked.")):"already_set"===o?.reason&&console.log(chalk.gray(" (guess already locked earlier.)"))}console.log(),console.log(chalk.white(" Data:"));const N=await u(`/api/icoa/arena/${A}/data`),L=N?.data??N;if(L?.public_train&&L?.public_test){const e=n(process.cwd(),"icoa-arena",A),t=n(e,"public_train.csv"),r=n(e,"public_test.csv");try{o(e,{recursive:!0}),a(t,L.public_train),a(r,L.public_test);const i=L.meta??{},s="number"==typeof i.n_train?i.n_train:"?",l="number"==typeof i.n_test?i.n_test:"?",c="string"==typeof i.metric?i.metric:$.metric,d=n(e,"solve_template.py");a(d,function(e,o){const t=/rmse|mse|mae|error/i.test(o);return["# %% setup — data loading (leave as is)","# ICOA Selection Arena — starter. Open: icoa ipynb solve_template.py (fill the MODEL cell, run all)","# It self-checks your score, then writes predictions.csv next to the data.","import pandas as pd","from sklearn.model_selection import train_test_split",t?"from sklearn.metrics import mean_squared_error":"from sklearn.metrics import accuracy_score","",`DIR = r"${e}"`,'train = pd.read_csv(DIR + "/public_train.csv")','test = pd.read_csv(DIR + "/public_test.csv")','features = [c for c in train.columns if c not in ("id", "target")]','X, y = train[features], train["target"]',"X_test = test[features]","X_tr, X_val, y_tr, y_val = train_test_split(X, y, test_size=0.2, random_state=0)","","# %% MODEL — this is the judged part","# ================ YOUR MODEL HERE (this is what is judged) ================","# Does this task need StandardScaler? a neural net (MLPClassifier)? a tree?","# or is something simple enough? Build ONE scikit-learn model:","# from sklearn.linear_model import LogisticRegression","# model = LogisticRegression(max_iter=2000)","model = ... # <-- replace ... with your model","# =========================================================================","","# %% validate","model.fit(X_tr, y_tr)",t?'print("val RMSE:", round(mean_squared_error(y_val, model.predict(X_val)) ** 0.5, 4))':'print("val accuracy:", round(accuracy_score(y_val, model.predict(X_val)), 4))',"","# %% submit — writes predictions.csv","model.fit(X, y) # retrain on ALL data for the real submission","pred = model.predict(X_test)",'out = DIR + "/predictions.csv"','pd.DataFrame({"id": test["id"], "target": pred}).to_csv(out, index=False)','print("wrote", out, "-- paste THIS path back in arena to submit.")',""].join("\n")}(e,c)),console.log(chalk.green(" ✓ train: ")+chalk.white(t)+chalk.gray(` (${s} rows, has target)`)),console.log(chalk.green(" ✓ test: ")+chalk.white(r)+chalk.gray(` (${l} rows, predict these)`)),console.log(chalk.green(" ✓ starter: ")+chalk.white(d)+chalk.gray(" (fill in the MODEL cell, run it)")),console.log(chalk.gray(` id: ${i.id_col??"id"} · target: ${i.target_col??"target"} · metric: ${c}`)),console.log(),console.log(chalk.bold.white(" Your move — 3 steps to get on the board:")),console.log(chalk.gray(" 1. ")+chalk.bold.cyan("icoa ipynb solve_template.py")+chalk.gray(" → edit only the MODEL cell (edit 2), then run all")),console.log(chalk.gray(" 2. it self-checks your score and writes ")+chalk.white("predictions.csv")),console.log(chalk.gray(" 3. come back here and paste that path to submit"))}catch{console.log(chalk.yellow(" Could not write the data files here — check directory permissions."))}}else console.log(chalk.gray(" (no downloadable data package — use the baseline reference below.)"));if($.baseline_ref){console.log(),console.log(chalk.white(" Baseline to beat:"));for(const e of $.baseline_ref.split("\n"))console.log(chalk.gray(` ${e}`))}for(console.log(),console.log(chalk.gray(" Optional hints a–e (logged — fewer hints reads as stronger). Enter to skip."));;){const e=(await p(chalk.cyan(" hint a-e (or enter to skip): "))).trim().toLowerCase();if(!e)break;if(!"abcde".includes(e)||1!==e.length){console.log(chalk.gray(" hints are a, b, c, d, or e."));continue}const o=await y(`/api/icoa/arena/${A}/hint`,{arena_token:k,level:e}),t=o?.data??o;t?.ok&&"string"==typeof t.hint?console.log(chalk.yellow(` hint ${e}: `)+chalk.white(t.hint)):console.log(chalk.gray(" (could not fetch that hint.)"))}for(console.log(),console.log(chalk.white(" Submit your predictions (")+chalk.gray(`${$.submission_format}`)+chalk.white("):")),console.log(chalk.gray(" • paste the path to the ")+chalk.white("predictions.csv")+chalk.gray(" the starter wrote (next to the data)")),console.log(chalk.gray(" • Colab/Kaggle users: a Google-Drive (link-viewable) share link also works")),console.log(chalk.gray(" 5 submissions — best score counts. Make them count."));;){const o=(await p(chalk.cyan(" predictions file path or drive link (enter to skip): "))).trim();if(!o)break;const a=s(o,k,{exists:e,read:e=>t(e,"utf-8")});"local"===a.source&&console.log(chalk.gray(" Uploading local predictions file…"));const r=await y(`/api/icoa/arena/${A}/submit`,a),n=r?.data??r;if(!n){h();break}if(!n.ok){if("locked"===n.reason){console.log(chalk.yellow(" Locked — you've used all 5 submissions."));break}console.log(chalk.yellow(" Submission rejected: ")+chalk.gray(String(n.reason||"error")));continue}const i=null==n.display_score?"n/a":`${Number(n.display_score).toFixed(1)}/100`;if(console.log(chalk.green(" ✓ scored: ")+chalk.bold.white(`${n.metric}=${Number(n.value).toFixed(4)}`)+chalk.gray(` (${i}) rank ${n.rank}/${n.field_size} · ${n.remaining} left`)),n.locked){console.log(chalk.gray(" That was your last submission — entry locked into the board."));break}}console.log();const O=await u(`/api/icoa/arena/${A}/leaderboard`),R=(O?.data??O)?.leaderboard??(Array.isArray(O?.leaderboard)?O.leaderboard:[]);if(Array.isArray(R)&&R.length){console.log(chalk.bold.white(" Leaderboard (anonymous):"));for(const e of R.slice(0,20))console.log(chalk.gray(` #${e.rank} `)+chalk.cyan(String(e.pseudonym))+chalk.gray(" ")+chalk.white(String(e.value))+(null==e.display_score?"":chalk.gray(` (${e.display_score}/100)`)))}else console.log(chalk.gray(" Leaderboard is empty or unavailable."));console.log()}finally{g.close()}}export function registerArenaCommand(e){e.command("arena [track] [task]",{hidden:!0}).description("Arena (<track>-frontier) — gated hands-on olympiad tasks with a server-graded leaderboard").action(async(e,o)=>{if("eai"===e)return void await i(o);const{track:t,task:a}=resolveTrackAndTask(e,o);await runArena(t,a)}),e.command("eai [task]").description("ctf4eai Embodied-AI Arena — red-team the robot policy and claim the flag").action(async e=>{await i(e)})}