icoa-cli 2.19.286 → 2.19.288
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.
- package/dist/commands/ai4ctf.js +1 -1
- package/dist/commands/aienv.js +1 -1
- package/dist/commands/arena.js +1 -1
- package/dist/commands/ctf4ai-demo.js +1 -1
- package/dist/commands/ctf4vla.js +1 -1
- package/dist/commands/env.js +1 -1
- package/dist/commands/exam.js +1 -1
- package/dist/lib/aienv.d.ts +17 -2
- package/dist/lib/aienv.js +1 -1
- package/dist/lib/hint-client.js +1 -1
- package/package.json +1 -1
package/dist/commands/ai4ctf.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(j,k){const ac=a0k,q=j();while(!![]){try{const v=-parseInt(ac(0xdd))/(-0x10*0x1af+0xa1*0x11+-0x1040*-0x1)*(-parseInt(ac(0x191))/(0x12d9+-0x25b2+0x12db))+-parseInt(ac(0x1ad))/(-0x1018+-0x131d+-0x142*-0x1c)*(parseInt(ac(0xd9))/(0x16be+0x12a1+-0x295b))+parseInt(ac(0xd7))/(-0x1a41+-0xc80+0x26c6)+-parseInt(ac(0x169))/(-0x174d+0x2154+0x1*-0xa01)*(parseInt(ac(0xd5))/(-0xb*0x48+0x3df*-0x1+0xa*0xb3))+-parseInt(ac(0x1c2))/(0x44d*-0x1+-0x1e54+0x22a9)*(parseInt(ac(0x195))/(0x1f5b+0x576*0x6+-0x4016))+-parseInt(ac(0x1c4))/(0x1*0x20a1+-0x19b+-0x1efc)*(parseInt(ac(0xee))/(0x1912+-0x29+-0x6*0x425))+parseInt(ac(0xf1))/(-0x1728+0x23d*0xe+0x1*-0x822);if(v===k)break;else q['push'](q['shift']());}catch(x){q['push'](q['shift']());}}}(a0j,0x6809*0x1d+-0x3fa23+-0x1b3da));import a0v from'chalk';import{createChatSession as a0x}from'../lib/gemini.js';import{addTokenUsage as a0z}from'../lib/budget.js';import{getConfig as a0A}from'../lib/config.js';function a0j(){const ao=['icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','ihrVA2vUCYbSzwz0lG','z2vTBweTnc0ZmwiTAxq','icdINjmGqw5ZD2vYigzVCIbr','zxHPDa','ywK0y3rMu2fTCgXL','ywK0y3rMv3jHCff1B3rHquHPBNq','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','B3jcywnR','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','ieLdt0f7lI4UFq','ywK0y3rMv3jVBMDgBgfN','ue9tva','ywK0y3rMrxHPDa','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','C3vIBwL0qxr0zw1WDgvK','ywK0y3rMrxHPDe5LEhrcB2r5','icaGideUia','ihrVig1VDMuGB24','ywK0y3rMoIa','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','ywK0y3rMsgLUDe5LEhrd','icbuAgLUA2LUzY4UlG','icaGigv4AxqGicaGicaGicaGica','sunpqxT5B3vYx2zSywD9','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','Dg9Rzw4','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','ihbVAw50CYK6cG','oIbhB29NBguGr2vTBweGncaO','icaGia','icaGihn1yM1PDca8zMXHzZ4Gica','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','AgLUDhnvC2vK','icdILiiG','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','DgvZDa','zxHHBuLK','ywK0y3rMv3jHCff1B3rHqKHPBNq','ywK0y3rMv3jHCeXPBMuXqM9KEq','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','icaGidiUia','ywK0y3rMsgLUDfbYAw5JAxbSzq','icdILii','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','BwvZC2fNzq','icaGig1LBNu','z3jLzw4','ywK0y3rMuMv2zwfSu2vLrMXHzW','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','icaGicaGigHPBNqGysaGia','ywK0y3rMtg9JA2vKvgHLBG','y29TBwfUza','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','CgfKrw5K','vg9Rzw5Z','AgLUDa','icaGigv4Axq','zMLUza','yMfJAW','ywK0y3rMq21KsgLUDeXPBMu','C2vZC2LVBG','D2HPDgu','ywK0y3rMt3jdAgf0','ywK0y3rMsgLUDe5LEhrb','C2L6zq','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','icaGifbYzxzPB3vZoIa','ywK0y3rMv3jHCe5LEhruAxrSzq','mZzqDhHMtem','icbfCNjVCJOG','DhLWzufUzevUDgvYvg9czwDPBG','Dg9Rzw5mAw1PDa','CxvLC3rPB25Z','icdILRGG','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','C3vIBwL0ieLdt0f7lI4UFq','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','BM93','icaGicaGigHPBNqGyYaGia','icaGicaGicbZDwjTAxqGAwnVyxT3m2XJmg1LxZjFywK0y3rMFq','CxvPDa','Bgv2zwW','z3jHEq','q29TBwfUzcbMywLSzwq','icaKia','ywK0y3rMsgLUDefcB2r5','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','BwLU','icaGigHPBNqGyG','icaGieHPBNqGyNvKz2v0igv4Agf1C3rLzcbMB3iGBgv2zwWG','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','iMHVDYbKBYbjigrLy3j5ChqGquvtluncqYbPBIbqExrOB24/iG','q3j5ChrVz3jHCgH5','icdIMQaG','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','y3LHBG','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','icaG4OAsia','ywK0y3rMsgLUDefvC2vZ','lI4VBgLIl2v4yw0TC3rHDguUANm','DgHPBMTPBMC','BM9KztPJAgLSzf9WCM9JzxnZ','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','ywK0y3rMuMv2zwfSvgL0Bgu','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','mtq5nZrlthr4CK8','ywK0y3rMvg9Rzw5Z','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','AgLUDcbJ','nJy3ndGYm0fetwjVvW','BNvTyMvY','ywK0y3rMv3jHCe5LEhrtDwi','icaGicfWExrOB24Zic4UlG','lI4U','BMfTzq','ywK0y3rMtgv2zwXZ','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','icaGicaGia','icbr','C3rKB3v0','xsaGWRCG','DxrMltG','DhjPBq','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','CMvWBgfJzq','icbszxn1Bwu6ia','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','ihjLy29YzgvKoIa','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','ywK0y3rMuMv2zwfStg9JA05VDgu','y2XLyxi','y29UDgLUDwu','ywK0y3rMsgLUDe51zgDL','mtjRD0reDvC','Dg9vChbLCKnHC2u','icbkDw1WihrOzxjLoIa','ywK0y3rMvgL0Bgu','ywK0y3rMrxHPDe5LEhruAxrSzq','zgvZy3jPChrPB24','yM9Sza','ChvZAa','icdILRGGsgLUDca','iokaLcb0ExbLia','ywK0y3rMtg9JA2vKvgL0Bgu','AgLUDcbI','AgLUDcbH','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','icaGifn0DwnRpYbuCNK6ia','ywK0y3rMv3jHCe5VuhjVzW','icbbzNrLCIbLEgL0oIa','ywK0y3rMq29TBwfUzhm','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','rNvSBcbXDwvZDgLVBJOGia','zxHHBsbXia','ogHWqNHzva','ywK0y3rMsgLUDee','mtG0odi5me1WCKfHsa','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','BwvUDq','ywK0y3rMsgLUDe5LEhrc','ihrVignVBNrPBNvL','icbB','D3jPDgu','ywK0y3rMv3jHCfr5CgvdDgy0ywK','icaGihn1yM1PDcbjq09bEY4UlN0','sgLUDca','ywK0y3rMv3jHCfrPDgXL','ywK0y3rMsgLUDfrLy2HUAxf1zq','zw50zxjLzef0','Bwf0y2G','ywK0y3rMrgvJB2rL','Dg9mB3DLCKnHC2u','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbozxH0oIa','icaGigHPBNqGysaVigiGlYbJica','ywK0y3rM','ywK0y3rMsgLUDem','C2XPy2u','ywK0y3rMrgvJB2rLza','ywK0y3rMvgHPBMTPBMC','EwvSBg93','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','y3rMngfP','iokvKokvKokvKa','C2vUze1LC3nHz2u','DMLHigfPngn0zIbJAgf0','zxHHBsbHBNn3zxiG','q29UDgvUDc1uExbL','icaGigHPBNqGyq','ywK0y3rMsw50zxjJzxb0zwq','ywrK','icaGicaGicaGicaGica','DhLWzq','icbvC2u6ia','ywn0Aw9U','icdILzdILzdILzaGquK0q1rgiokaLcbr','C3vIBwL0ia','ywK0y3rMv3jHCff1B3rHqG','icaGice8C2HLBgWGy21KpIaGica','ywK0y3rMsgLUDei','ywK0y3rMu3vIBwL0q21K','ywK0y3rMv3jHCeXPBMuYqM9KEq','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','ywK0y3rMv3jHCff1B3rHq0HPBNq','ywK0y3rMv3jHCff1B3rHC1rPDgXL','yxbWBgLJyxrPB24VANnVBG','ywK0y3rMv3jHCe5LEhrcB2r5','nZy3nti5zxvWA3vS','y2f0zwDVCNK','mtG3mdK5nwrhtxPvua','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','mtKXota0BLbdq1bO','Bg9N','y2f0y2G','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','ndnhzKDotxq','ywK0y3rMv291BgrfyxjU','sgLKzgvUie1LC3nHz2u','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','CMvK','yw5ZD2vYx2nOyw5Nzwq','CxvLC3rPB24','icbgBgfNigzVCM1HDdOG','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','ywK0y3rMsgLUDejcB2r5','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','ywK0y3rMuMvWB3j0','Cg9PBNrZ','icbtDgLSBcbHDMfPBgfIBgu6ia','ywLvC2fNzq','mZnYzvz4t2q','Dgv4Da','DgLTzw91Da','mJiXotG5otjct09nB1G','ywK0y3rMrw5Ku2vZC2LVBG','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','icdcTYaGuMuTzw50zxi6ia','Dg9ju09tDhjPBMC','g1SXqrTBmKS','ihb0CW','C3bSAxq','icdINjmGuq','icaGicaGicaGicaGicaGicaGicbLlMCUia','ixnOzwXS','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','quKGzxjYB3i6ia','ywK0y3rMv3jHCeXPBMuXsgvHza','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','BgvUz3rO','igLZigeGq1rgnefjihf1zxn0Aw9UicHHDhrHy2STDgHLlufjks4','y3rMngvHAq','ywK0y3rMq21Ku2HLBgXmAw5L','CMvWzwf0','icaGigHPBNqGyW','icbbstrdveyGy2HHDcbPCYbHDMfPBgfIBguGB24GChjHy3rPy2fSihf1zxn0Aw9UCYaOBMv4DdOGuq','C3rYAw5NAwz5','zw5JB2rPBMC','ywK0y3rMq2HHBgXLBMDL','igfNywLUihrVignOyw5NzsWGB3iG','Cu51Bq','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','igzVCIbrmZK','E25VuhjVz30','iokaLca','z2vTAw5Ptw9KzwW','C3vIBwL0idXMBgfNpG','yw5ZD2vYCW','C3rHCNrZv2L0Aa','icaGiev4yw0GD2LUzg93ignSB3nLzc4','imk3ia','icaGicaGigHPBNqGyIaGia','C3rHDhvZ','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','ywK0y3rMv3jHCff1B3rHqq','ywK0y3rMrMXHz0HPBNq','icdILRGGia','cIaG','x2XHC3rr','ywK0y3rMsgLUDencB2r5','ywK0y3rMtw9KzwW','AgfZ','Aw50zxjHy3rPB25Z'];a0j=function(){return ao;};return a0j();}import{logCommand as a0B}from'../lib/logger.js';import{printMarkdown as a0C,printError as a0D}from'../lib/ui.js';import{t as a0E}from'../lib/i18n.js';import{getExamState as a0F,saveExamState as a0G}from'../lib/exam-state.js';function a0k(a,b){a=a-(0x93*0x25+0x1bb5+0x1*-0x303d);const c=a0j();let d=c[a];if(a0k['FYcbWw']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x2119+-0xfbd*0x1+-0x115c,o,p,q=0x2294+-0x11ab*0x1+-0x10e9;p=i['charAt'](q++);~p&&(o=n%(-0x72e*0x2+0x87*0x47+0x1711*-0x1)?o*(-0x15d9+0x8bf*-0x1+0x1ed8)+p:p,n++%(-0x23c4+0x21d3+0x1f5))?l+=String['fromCharCode'](-0x1*0x9d9+0x1411+-0x939&o>>(-(-0x1*0x181+-0x181a+0x4f*0x53)*n&-0x26a+0x515*-0x2+-0x64d*-0x2)):-0x1cf8+-0x18f2+0x35ea){p=j['indexOf'](p);}for(let r=-0x16af*0x1+0x93c+0xd73,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x135e+-0xbed+0x1f5b))['slice'](-(0x1*-0x10a3+-0x1fe*-0x12+-0x1337));}return decodeURIComponent(m);};a0k['IVgPGH']=e,a0k['ATzPix']={},a0k['FYcbWw']=!![];}const f=c[0x1*0x8d9+0x1*0x27f+-0xb58],g=a+f,h=a0k['ATzPix'][g];return!h?(d=a0k['IVgPGH'](d),a0k['ATzPix'][g]=d):d=h,d;}const g=j=>new Promise(k=>setTimeout(k,j));let r=!(-0xfbd*0x1+-0x16c3+-0x1*-0x2681),y=null,u=-0x12f3+0x142f+-0x13c,h=!(0x2571+0x59*0xb+0x2943*-0x1);const d=-0x22f51+0x1ffd*-0x7+0x5033c,f=-0xb2d1+0xa91d+0x6b5c;let m=null;export function isChatActive(){return r;}function w(){const ad=a0k,j=m?f:d,k=u,q=Math[ad(0x17e)](Math['round'](k/j*(-0x1*0x9d9+0x1411+-0x9d4)),-0x1*0x181+-0x181a+0x37*0x79),v=Math['round'](q/(-0x26a+0x515*-0x2+-0x14c*-0xa)*(-0x1cf8+-0x18f2+0x35fe)),x=-0x16af*0x1+0x93c+0xd87-v,z=q>-0x135e+-0xbed+0x1f9b?a0v[ad(0xe2)]:q>0x1*-0x10a3+-0x1fe*-0x12+-0x1307?a0v[ad(0xba)]:a0v[ad(0x152)],A=m?'AI4CTF\x20section':ad(0x15a);console['log'](a0v[ad(0x178)]('\x20\x20'+A+':\x20')+z('█'[ad(0x104)](v))+a0v['gray']('░'[ad(0x104)](x))+a0v[ad(0x178)]('\x20'+k+'/'+j+'\x20('+q+'%)'));}export async function handleChatMessage(v){const ae=a0k;if(!y)return ae(0x126);if(a0B(ae(0x135)+v),m)return b(v);const x=v[ae(0x1a2)]()[ae(0x1d3)]()[ae(0x1d1)](/^hint\s+([abc])$/);if(x)return function(C){const af=ae,D=a0E('a'===C?af(0x1c3):'b'===C?af(0xcd):af(0x1d8)),E=a0E('a'===C?af(0x17b):'b'===C?af(0xe8):af(0x11e)),F=af(0x1cd)+C[af(0x1ae)](),G='a'===C?a0v[af(0x152)]:'b'===C?a0v[af(0xba)]:a0v[af(0xe2)];console['log'](),console['log'](G[af(0x1b3)](af(0x16e)+F+'\x20\x20')+a0v[af(0x178)](D)),console[af(0xda)]();for(const H of E['split']('\x0a'))''===H?console[af(0xda)]():console['log'](a0v[af(0x161)](af(0x140)+H));console[af(0xda)](),'a'===C?(console[af(0xda)](a0v[af(0x178)](af(0x140)+a0E(af(0x163))+'\x20')+a0v[af(0x186)]('hint\x20b')),console[af(0xda)]()):'b'===C&&(console[af(0xda)](a0v[af(0x178)]('\x20\x20\x20\x20'+a0E(af(0x1c7))+'\x20')+a0v['cyan'](af(0x194))),console['log']());}(x[0x1*0x8d9+0x1*0x27f+-0xb57]),'continue';const z=v[ae(0x1d1)](/^submit\s+(.+)/i);if(z){let C=z[0x15fe+-0x9e*-0x1+-0x283*0x9]['trim']();if(/^submit\s+/i[ae(0x147)](C)&&(C=C['replace'](/^submit\s+/i,'')[ae(0x1a2)]()),C=C['replace'](/^["'`]+|["'`]+$/g,'')[ae(0x1a2)](),'icoa{w3lc0me_2_ai4ctf}'===C){console[ae(0xda)](),console['log'](a0v['green']['bold'](ae(0x1a6))),console[ae(0xda)](a0v[ae(0x152)][ae(0x1b3)]('\x20\x20'+a0E('ai4ctfCorrectFlag'))),console['log'](a0v['green'][ae(0x1b3)](ae(0x1a6))),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x161)]('\x20\x20'+a0E(ae(0xb8)))),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0xde)))),console['log'](),w(),r=!(0x1d66+-0xb68+-0x11fd),y=null,fetch(ae(0x142),{'method':ae(0x12e),'headers':{'Content-Type':ae(0xd3)},'body':JSON[ae(0x107)]({'type':'ai4ctf','solved':!(0x46d*-0x3+-0x3e1+0x1128),'tokensUsed':u,'timestamp':new Date()[ae(0xf5)]()}),'signal':AbortSignal[ae(0xf0)](0x1c34+-0x7a5*-0x5+-0x7*0x6b3)})['catch'](()=>{}),await g(-0x1894+0x1*0xed1+0x5d*0x2b),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x186)](ae(0x1d4))),console[ae(0xda)](a0v[ae(0x1b3)]['white']('\x20\x20'+a0E(ae(0x1ce)))),console[ae(0xda)](a0v[ae(0x186)]('\x20\x20─────────────────────────────────────────────')),console['log']();const D=a0E(ae(0xfe)),E=a0E(ae(0x14a));console[ae(0xda)](a0v[ae(0x161)](ae(0x133)+D+'\x20')+a0v[ae(0x178)](E[ae(0xf8)]('\x0a')[-0x453*-0x7+0x32*-0xa0+0xfb]||''));for(const I of E[ae(0xf8)]('\x0a')[ae(0xb7)](-0x1*-0x158b+-0x2*-0x28d+-0x1aa4))I[ae(0x1a2)]()&&console['log'](a0v['gray'](ae(0x19d)+I[ae(0x1a4)](/\{thinking\}/g,ae(0x18c))));console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x161)](ae(0x14c)+a0E('ai4ctfWrapLine2Head')+'\x20')+a0v['gray'](a0E(ae(0xcf)))),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x186)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console[ae(0xda)](),await g(0x1*0x260+-0x225*-0xc+0x1*-0x144c),console[ae(0xda)](a0v[ae(0x186)]('\x20\x20─────────────────────────────────────────────')),console[ae(0xda)](a0v['bold'][ae(0x161)]('\x20\x20'+a0E(ae(0xd2)))),console[ae(0xda)](a0v[ae(0x186)](ae(0x1d4))),console['log'](),console[ae(0xda)](a0v['yellow'](ae(0x155))+a0v[ae(0x161)](a0E(ae(0x119))[ae(0x159)](-0x27f*0x3+-0x2651+0x2de8))+a0v['gray'](a0E(ae(0x128)))),console[ae(0xda)](a0v[ae(0xba)](ae(0x116))+a0v[ae(0x161)](a0E(ae(0xcb))['padEnd'](0x4e*0x4a+-0xfc9+0x9b*-0xb))+a0v['gray'](a0E(ae(0x149)))),console[ae(0xda)](a0v[ae(0xba)](ae(0x174))+a0v['white'](a0E('ai4ctfWrapQuotaC')[ae(0x159)](0x344*-0x7+0x3*-0x639+-0x29a1*-0x1))+a0v[ae(0x178)](a0E(ae(0xd1)))),console['log']();for(const J of a0E('ai4ctfWrapQuotaFooter')[ae(0xf8)]('\x0a'))console[ae(0xda)](a0v[ae(0x178)]('\x20\x20\x20\x20'+J));console[ae(0xda)](),await g(-0x24f2+0xb3*-0x35+0x127*0x47),console[ae(0xda)](a0v[ae(0x186)](ae(0x1d4))),console['log'](a0v[ae(0x1b3)][ae(0x161)]('\x20\x20'+a0E(ae(0x168))+'\x20')+a0v[ae(0xe2)][ae(0x1b3)](ae(0xbc))+a0v[ae(0x161)](ae(0x10f)+a0E(ae(0x197)))),console[ae(0xda)](a0v[ae(0x186)](ae(0x1d4))),console['log']();const F=a0E(ae(0xd4)),G=a0E(ae(0x1bc)),H=F[ae(0xf8)]('\x0a');if(H[0x1897+0x925*0x1+-0x21bc]){const [K,L]=H[-0x1074+0xa*0x3c9+-0x1566][ae(0xf8)](ae(0x10e));console[ae(0xda)](a0v[ae(0x161)]('\x20\x20\x20\x20'+(K||''))+a0v['bold'][ae(0x161)](G)+a0v[ae(0x161)](L||''));}for(const M of H[ae(0xb7)](0x2092+-0x2545+-0x4b4*-0x1))M[ae(0x1a2)]()&&console[ae(0xda)](a0v['white'](ae(0x140)+M));return console['log'](),console[ae(0xda)](a0v[ae(0x178)](ae(0x140)+a0E(ae(0x1cb))+'\x20')+a0v[ae(0x1b3)][ae(0xe2)](ae(0xbc))),console[ae(0xda)](),ae(0x126);}return console[ae(0xda)](),console['log'](a0v['red']('\x20\x20'+a0E(ae(0x12d)))),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0x11a)))),console[ae(0xda)](),ae(0x1ab);}if(v[ae(0x113)]('!')){const N=v[ae(0xb7)](-0x11b*-0xd+-0xef2*-0x1+0x7*-0x430)[ae(0x1a2)]();if(!N)return ae(0x1ab);try{const O={};O[ae(0x108)]='utf-8',O[ae(0xf0)]=0x2710;const {execSync:P}=await import(ae(0x18d)),Q=P(N,O)[ae(0x1a2)]();console[ae(0xda)](),console[ae(0xda)](a0v['gray'](ae(0x17a))+a0v[ae(0x161)](N)),console[ae(0xda)](a0v[ae(0x161)]('\x20\x20'+Q[ae(0xf8)]('\x0a')['join'](ae(0x11c)))),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E('ai4ctfFoundFlag'))),console['log']();}catch(R){console[ae(0xda)](),console['log'](a0v[ae(0xe2)]('\x20\x20Error:\x20'+(R[ae(0x150)]?.[ae(0xf8)]('\x0a')[0x169f*-0x1+-0x46*0x11+0x1b45]||ae(0x179)))),console[ae(0xda)]();}return ae(0x1ab);}const A={};A[ae(0xc1)]=ae(0xd3);if(ae(0x126)===v||'back'===v||ae(0x176)===v||ae(0x1c6)===v)return r=!(0x207*0x9+-0x1de0+-0x2*-0x5d1),y=null,fetch(ae(0x142),{'method':ae(0x12e),'headers':A,'body':JSON['stringify']({'type':ae(0x1d7),'tokensUsed':u,'timestamp':new Date()[ae(0xf5)]()}),'signal':AbortSignal[ae(0xf0)](0x4*-0x273+0x17d7+0x57d*0x1)})[ae(0xdb)](()=>{}),console[ae(0xda)](),console[ae(0xda)](a0v['gray']('\x20\x20─────────────────────────────────────────')),console[ae(0xda)](a0v[ae(0x161)]('\x20\x20'+a0E(ae(0xea)))),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0x192))+':\x20'+u+'/128000')),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0x11f))+ae(0xe9))),console['log'](a0v[ae(0x178)]('\x20\x20─────────────────────────────────────────')),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x186)](ae(0x1d4))),console[ae(0xda)](a0v[ae(0x161)]('\x20\x20'+a0E(ae(0x1b1))+'\x20')+a0v[ae(0x1b3)][ae(0xe2)](ae(0xbc))+a0v[ae(0x161)](ae(0x10f)+a0E('ai4ctfExitNextSub'))),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0x132)))),console[ae(0xda)](a0v[ae(0x186)]('\x20\x20─────────────────────────────────────────────')),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0x161)](ae(0x11b))+a0v[ae(0x161)](a0E(ae(0x16b))[ae(0x1a4)]('{cmd}',a0v[ae(0x1b3)][ae(0xe2)](ae(0xbc))))),console[ae(0xda)](a0v[ae(0x178)]('\x20\x20\x20\x20\x20'+a0E(ae(0x12a)))),console[ae(0xda)](),'exit';const B={};B[ae(0xc1)]='application/json';if(!h&&u>=d)return h=!(0x5d1*-0x6+-0x2*0xfb+0x24dc),fetch(ae(0x142),{'method':ae(0x12e),'headers':B,'body':JSON[ae(0x107)]({'type':ae(0x1d7),'solved':!(-0x716+-0x12e1+0x454*0x6),'tokensUsed':u,'timestamp':new Date()[ae(0xf5)]()}),'signal':AbortSignal[ae(0xf0)](-0x10aa+0xeaa+0x1588)})[ae(0xdb)](()=>{}),console[ae(0xda)](),console[ae(0xda)](a0v[ae(0xba)]('\x20\x20'+a0E(ae(0x16c)))),w(),(function(){const ag=ae;console[ag(0xda)](),console['log'](a0v[ag(0xba)]('\x20\x20─────────────────────────────────────────────')),console[ag(0xda)](a0v[ag(0x1b3)]['yellow']('\x20\x20'+a0E(ag(0x18f)))),console[ag(0xda)](a0v[ag(0xba)](ag(0x1d4))),console[ag(0xda)]();for(const S of a0E('ai4ctfRevealBody')[ag(0xf8)]('\x0a'))''===S?console[ag(0xda)]():console['log'](a0v[ag(0x161)](ag(0x140)+S));console[ag(0xda)](),console[ag(0xda)](a0v[ag(0x186)](ag(0x13b))),console[ag(0xda)](),console['log'](a0v[ag(0x161)](ag(0x140)+a0E(ag(0x153)))),console[ag(0xda)](),console[ag(0xda)](a0v['green'](ag(0x185))),console[ag(0xda)](),console[ag(0xda)](a0v[ag(0x161)](ag(0x140)+a0E(ag(0x172)))),console[ag(0xda)](),console[ag(0xda)](a0v[ag(0x186)](ag(0x175))),console['log'](),console[ag(0xda)](a0v[ag(0x178)]('\x20\x20\x20\x20'+a0E(ag(0x1a9)))),console[ag(0xda)]();}()),ae(0x1ab);if(h)return console[ae(0xda)](),console['log'](a0v[ae(0xba)]('\x20\x20'+a0E(ae(0x1b7)))),console['log'](a0v[ae(0x178)]('\x20\x20'+a0E('ai4ctfLockedUse')+'\x20')+a0v[ae(0x186)](ae(0x129))),console['log'](a0v['gray']('\x20\x20'+a0E(ae(0x156))+'\x20')+a0v[ae(0x186)](ae(0x187))),console[ae(0xda)](),ae(0x1ab);console[ae(0xda)](a0v[ae(0x178)]('\x20\x20'+a0E(ae(0xb9))));try{const S=await y['sendMessage'](v);process[ae(0x19f)][ae(0x1ca)](ae(0xf6)),u+=S['tokensUsed'],a0z(S['tokensUsed']),console['log'](),a0C(S[ae(0xef)]),w(),console[ae(0xda)]();}catch(T){process[ae(0x19f)][ae(0x1ca)](ae(0xf6)),a0D(ae(0xfd)+T[ae(0x150)]),console[ae(0xda)]();}return'continue';}const p=new Set();async function b(v){const ah=a0k;if(!m||!y)return ah(0x126);const x=v[ah(0x1a2)](),z=x[ah(0x1d3)](),A=(Date[ah(0x173)]()-m[ah(0x1d0)])/(-0x10b7c+-0x1063*-0x16+0x8d5a);if(!m['nudgeShown']&&!m[ah(0x131)]&&m[ah(0x144)][ah(0x164)]>=0x1366+-0x13e6*-0x1+0x2f*-0xd6&&A>=0x295+-0xa1*0x17+0xb*0x115&&(m['nudgeShown']=!(-0xc13+0x3d*-0x80+0x2a93),console[ah(0xda)](),console[ah(0xda)](a0v[ah(0xba)](ah(0x1c5))+a0v[ah(0x1b3)][ah(0xba)](ah(0x10c))),console[ah(0xda)](a0v['gray'](ah(0x1a8))),console[ah(0xda)]()),/^ICOA\{[^}]+\}$/i['test'](x))return console[ah(0xda)](),console['log'](a0v[ah(0x178)](ah(0x188))+a0v['white'](ah(0xca)+x)),b('submit\x20'+x);const B=z[ah(0x1d1)](/^hint\s+([abc])$/);if(B){const D=B[-0x4*-0x623+0x1d1f+-0x1*0x35aa][ah(0x1ae)]();m['hintsUsed'][ah(0xc4)](D);const E=a0F();E&&(E[ah(0x121)]||(E[ah(0x121)]=[]),E['interactions'][ah(0x1b4)]({'ts':new Date()[ah(0xf5)](),'q':m[ah(0x10b)],'type':'hint_used','input':D}),a0G(E));const F='A'===D?a0v[ah(0x152)]:'B'===D?a0v[ah(0xba)]:a0v[ah(0xe2)];console[ah(0xda)](),console[ah(0xda)](F[ah(0x1b3)](ah(0x1b5)+D)),console[ah(0xda)]();const {requestHint:G}=await import(ah(0x136)),H=E?.[ah(0x160)]?.[ah(0x148)]||'',I=E?.[ah(0x160)]?.[ah(0x13c)]||'';let J=null;if(H&&I)try{const K={};K[ah(0x148)]=H,K[ah(0x13c)]=I,K[ah(0xe4)]=m['qNum'],K[ah(0x177)]=D,J=(await G(K))[ah(0x15b)];}catch(L){0x1a52+0x12b1*0x1+-0x2b56===L?.[ah(0x117)]?console[ah(0xda)](a0v[ah(0xba)](ah(0x180)+D+'.')):0xaf3+-0xbe4+0x28b===L?.[ah(0x117)]?console[ah(0xda)](a0v['yellow'](ah(0x114))):0x1*0x1c05+0xe6a+-0x1*0x28db===L?.[ah(0x117)]?console['log'](a0v[ah(0x178)](ah(0x12b))):console['log'](a0v['gray']('\x20\x20\x20\x20Could\x20not\x20reach\x20hint\x20server.\x20Check\x20your\x20connection.'));}if(J){for(const M of String(J)[ah(0xf8)]('\x0a'))console[ah(0xda)](a0v['white'](ah(0x140)+M));}return console['log'](),'A'===D?console[ah(0xda)](a0v['gray'](ah(0x1bb))+a0v[ah(0x186)](ah(0x1b8))):'B'===D?console['log'](a0v[ah(0x178)](ah(0x154))+a0v[ah(0x186)]('hint\x20c')):'C'===D&&console[ah(0xda)](a0v[ah(0x178)](ah(0x140)+a0E(ah(0x137))+'\x20')+a0v[ah(0x1b3)][ah(0x152)](ah(0x10c))),console[ah(0xda)](),ah(0x1ab);}const C=x[ah(0x1d1)](/^submit\s+(.+)/i);if(C){let N=C[0x25*0x59+-0x1a6e+0xd92][ah(0x1a2)]();if(/^submit\s+/i[ah(0x147)](N)&&(N=N['replace'](/^submit\s+/i,'')[ah(0x1a2)]()),N=N[ah(0x1a4)](/^["'`]+|["'`]+$/g,'')[ah(0x1a2)](),/^[A-Da-d]$/['test'](N))return console[ah(0xda)](),console[ah(0xda)](a0v[ah(0xba)]('\x20\x20\x22'+N+ah(0x193))),console[ah(0xda)](a0v['gray'](ah(0xe5))+a0v[ah(0x152)](ah(0x13a))+a0v[ah(0x178)](ah(0xfc))),console[ah(0xda)](),ah(0x1ab);const {getExamState:O,saveExamState:P}=await import(ah(0x18b)),Q=O();if(!Q)return ah(0x126);if(!Q[ah(0x16d)][ah(0x15d)](T=>T[ah(0x196)]===m[ah(0x10b)]))return console['log'](a0v[ah(0xe2)](ah(0x19e)+m[ah(0x10b)]+'\x20not\x20found\x20in\x20state.')),ah(0x1ab);const R=Q[ah(0x112)][m['qNum']];Q[ah(0x121)]||(Q[ah(0x121)]=[]),Q['interactions'][ah(0x1b4)]({'ts':new Date()[ah(0xf5)](),'q':m[ah(0x10b)],'type':R?ah(0xe3):'answer_submitted','input':N,'result':ah(0xbf)}),Q['answers'][m[ah(0x10b)]]=N;const S=m[ah(0x10b)]+(-0x230c+0xf76*0x1+0x1397);return Q[ah(0x11d)]=S<=-0x11fd+-0x22fa+0x351d?S:m[ah(0x10b)],P(Q),console[ah(0xda)](),R?(console[ah(0xda)](a0v[ah(0x152)](ah(0xf9)+m[ah(0x10b)]+'\x20answer\x20updated:\x20')+a0v['yellow'](N)),console[ah(0xda)](a0v[ah(0x178)](ah(0x167)+R))):console[ah(0xda)](a0v[ah(0x152)][ah(0x1b3)](ah(0x125)+m[ah(0x10b)]+ah(0x1a7)+N)),console['log'](a0v[ah(0x178)](ah(0x158))),console['log'](),console[ah(0xda)](a0v[ah(0x178)]('\x20\x20')+a0v[ah(0x161)](ah(0x170))+a0v[ah(0x178)](ah(0x10a))+a0v[ah(0x161)]('exit')+a0v['gray'](ah(0x134))),S<=0x157+0x13b+-0x136*0x2?console['log'](a0v[ah(0x178)](ah(0x1bd))+a0v[ah(0x186)](ah(0x1d7))+a0v[ah(0x178)]('\x20will\x20open\x20Q'+S)):console[ah(0xda)](a0v[ah(0x178)](ah(0x143))+a0v[ah(0xe2)](ah(0xbc))+a0v['gray']('\x20on\x20Q39')),console['log'](),ah(0x1ab);}if(v['startsWith']('!')){const T=v[ah(0xb7)](0x13d8+-0x1945+0x2b7*0x2)[ah(0x1a2)]();if(!T)return'continue';try{const U={};U[ah(0x108)]=ah(0x1a1),U[ah(0xf0)]=0x2710;const {execSync:V}=await import(ah(0x18d)),W=V(T,U)[ah(0x1a2)]();console[ah(0xda)](),console[ah(0xda)](a0v[ah(0x178)]('\x20\x20$\x20')+a0v['white'](T)),console[ah(0xda)](a0v[ah(0x161)]('\x20\x20'+W[ah(0xf8)]('\x0a')['join']('\x0a\x20\x20'))),console[ah(0xda)]();}catch(X){console[ah(0xda)](),console[ah(0xda)](a0v['red'](ah(0x16a)+(X[ah(0x150)]?.['split']('\x0a')[-0x371*-0x1+-0x1764+0x1*0x13f3]||'Command\x20failed'))),console[ah(0xda)]();}return ah(0x1ab);}if('exit'===z||ah(0x15e)===z||'quit'===z){const Y=m['qNum'],{getExamState:Z}=await import(ah(0x18b)),a0=Z(),a1=a0&&null!=a0[ah(0x112)][Y],a2=a0?.['_lastQ']||Y;return r=!(-0xc2*-0x1f+-0x1d47*-0x1+-0x133*0x2c),y=null,m=null,p[ah(0x1aa)](),console[ah(0xda)](),console[ah(0xda)](a0v[ah(0x178)](ah(0x122)+Y+'.')),a1&&a2>Y&&a2<=-0x1e10+-0x1*-0x1f9d+-0x167?console[ah(0xda)](a0v['white'](ah(0x1d5))+a0v[ah(0x1b3)]['green']('Q'+a2)+a0v['gray'](ah(0x1b6))+a0v['cyan']('ai4ctf')+a0v[ah(0x178)](ah(0x1c8))):a1&&Y>=0x10e4+-0x15d1+0x513?console[ah(0xda)](a0v['white'](ah(0x146))+a0v[ah(0x1b3)][ah(0xe2)](ah(0xbc))+a0v[ah(0x178)](ah(0x10d))):console['log'](a0v[ah(0x178)](ah(0x1a5))+a0v['white'](ah(0x1c1)+Y)+a0v['gray'](ah(0xf4))+a0v[ah(0x161)]('ai4ctf')),console[ah(0xda)](),ah(0x126);}if(h)return console[ah(0xda)](),console[ah(0xda)](a0v[ah(0xba)](ah(0xd8))),console[ah(0xda)](a0v[ah(0x178)](ah(0xec))+a0v[ah(0x161)](ah(0x111))+a0v[ah(0x178)](ah(0x115))+a0v[ah(0x161)](ah(0xfb))+a0v[ah(0x178)](ah(0x115))+a0v[ah(0x161)](ah(0x126))),console['log'](),ah(0x1ab);if(u>=f)return h=!(0x23b*-0x9+-0x3*-0x5c2+0x2cd),console[ah(0xda)](),console[ah(0xda)](a0v['red']['bold']('\x20\x20⚠\x20AI4CTF\x20token\x20budget\x20exhausted\x20(25,000\x20used).')),console[ah(0xda)](a0v['gray']('\x20\x20You\x20can\x20still:\x20')+a0v[ah(0x161)]('submit\x20<flag>')+a0v['gray'](ah(0x115))+a0v['white'](ah(0xfb))+a0v[ah(0x178)]('\x20·\x20')+a0v[ah(0x161)](ah(0x126))),console[ah(0xda)](),ah(0x1ab);console[ah(0xda)](a0v['gray'](ah(0x138)));try{const a3=await y[ah(0xbe)](v);process[ah(0x19f)]['write'](ah(0xf6)),u+=a3['tokensUsed'];const {getRealExamState:a4,saveExamState:a5}=await import('../lib/exam-state.js'),a6=a4(),a7={};a7[ah(0x1d7)]=0x0,a7['ctf4ai']=0x0,(a6&&(a6[ah(0xed)]||(a6[ah(0xed)]=a7),a6[ah(0xed)]['ai4ctf']=u,a5(a6)),console[ah(0xda)](),a0C(a3[ah(0xef)]),w(),function(a8,a9,aa){const ai=ah,ab=a8/a9*(-0x101f+0x33d*-0x1+-0x40*-0x4f);ab>=-0x6be+-0xb99*0x1+-0x1*-0x12b6&&!aa['has']('95')?(console[ai(0xda)](a0v[ai(0xe2)][ai(0x1b3)](ai(0x184)+Math['round'](ab)+'%\x20of\x20section\x20AI\x20budget\x20used\x20—\x20only\x20~'+(a9-a8)+ai(0x123))),aa['add']('95')):ab>=0x3*0xa16+0x11*0x11b+0x30bd*-0x1&&!aa[ai(0x120)]('80')?(console[ai(0xda)](a0v[ai(0xba)]('\x20\x20⚠\x2080%\x20of\x20section\x20AI\x20budget\x20used.')),aa[ai(0xc4)]('80')):ab>=0x15e2+0xc89+-0x2239&&!aa['has']('50')&&(console[ai(0xda)](a0v['gray'](ai(0x165))),aa[ai(0xc4)]('50'));}(u,f,p),console[ah(0xda)]());}catch(a8){process[ah(0x19f)]['write'](ah(0xf6)),a0D('AI\x20error:\x20'+a8[ah(0x150)]),console[ah(0xda)]();}return ah(0x1ab);}export function registerAi4ctfCommand(j){const aj=a0k;j[aj(0x157)]('ai4ctf')[aj(0x1b2)](aj(0xd0))[aj(0xc8)](async()=>{const ak=aj;a0B(ak(0x1d7));const {getRealExamState:k}=await import('../lib/exam-state.js'),q=k(),v=q?.[ak(0x16d)]['some'](B=>ak(0x1d7)===B['type']);if(q&&v){const B=q[ak(0x11d)]||0x859*0x2+0xe2*-0x10+-0x291,C=q[ak(0x16d)][ak(0x15d)](D=>D['number']===B);if(!C)return void a0D('Q'+B+ak(0x18e)+B);if(ak(0x1d7)!==C['type']){if(console['log'](),ak(0xbc)===C['type'])console[ak(0xda)](a0v['yellow']('\x20\x20Q'+B+ak(0x101))),console[ak(0xda)](a0v[ak(0x178)]('\x20\x20Use:\x20')+a0v[ak(0x1b3)][ak(0xe2)]('ctf4ai'));else{if('vla'===C['type'])console[ak(0xda)](a0v[ak(0xba)](ak(0x19e)+B+ak(0x1ba))),console['log'](a0v[ak(0x178)](ak(0xc7))+a0v[ak(0x1b3)][ak(0x186)](ak(0x102)));else{const D=q[ak(0x16d)][ak(0x15d)](E=>ak(0x1d7)===E[ak(0xc6)]);console[ak(0xda)](a0v['yellow']('\x20\x20Q'+B+'\x20is\x20a\x20multiple-choice\x20question\x20—\x20answer\x20with\x20A/B/C/D.')),D&&(console[ak(0xda)](a0v[ak(0x178)](ak(0x106)+D[ak(0x196)]+').')),console[ak(0xda)](a0v[ak(0x178)](ak(0x1af))+a0v[ak(0x1b3)][ak(0x186)](ak(0x1c1)+D[ak(0x196)])));}}return void console[ak(0xda)]();}return void await async function(E,F){const al=ak,{getRealExamState:G,refetchQuestionDataIfStale:H,materializeAttachedData:I}=await import(al(0x18b));await H();const J=G();if(!J)return!(0x1bec*0x1+-0x14c2*-0x1+-0x30ad*0x1);const K=J[al(0x16d)][al(0x15d)](N=>N['number']===E);K&&(F=K),I(E,F?.['attachedData']);const L=J[al(0xed)]?.[al(0x1d7)]??0x527*0x4+-0x1631+0x195;if(L>=f)return console[al(0xda)](),console[al(0xda)](a0v[al(0xba)](al(0x19c))),console[al(0xda)](a0v[al(0x178)](al(0xe7))+a0v[al(0x161)](al(0xc0)+E+al(0x12c))),console[al(0xda)](),!(-0x24f3*0x1+0x218f+-0x1*-0x365);try{y=await a0x(void(-0x1e3d+0x1dd4+0xf*0x7),function(N,O){const am=al,P=N[am(0x1b2)]||N[am(0xef)]||'',Q=N['attachedData']?am(0xe1)+O+am(0xf3)+N['attachedData']:'';return am(0x14f)+O+',\x20'+N[am(0xd6)]+',\x20'+(N[am(0xeb)]||0x11*0xd4+0x21c9+0x1*-0x2fd7)+am(0x13e)+P+Q+am(0x16f)+O+am(0x181);}(F,E));}catch(N){return a0D(N[al(0x150)]),!(-0x18b0+0x2cc*0x6+0x7e9);}r=!(-0x1003+-0xf3b+0x1f3e),u=L,h=!(-0x2240+-0x5*-0x53e+-0x47*-0x1d),m={'qNum':E,'question':F,'usageField':al(0x1d7),'enteredAt':Date[al(0x173)](),'hintsUsed':new Set(),'submitAttempted':!(0xb3a*0x2+0x1346*0x2+-0x3cff),'nudgeShown':!(-0x1*0x1e86+-0x1*-0x1877+-0xc2*-0x8)};const M=J[al(0x112)]?.[E];return function(O,P,Q){const an=al,R=a0A()[an(0x110)]||an(0x124),S=u>-0x15b+0x1*0x1a87+-0x24*0xb3;console[an(0xda)](),console[an(0xda)](a0v[an(0x152)][an(0x1b3)](an(0xc9)+P+':\x20'+O[an(0xd6)]+an(0xbd))),S&&console['log'](a0v[an(0x178)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),Q&&console['log'](a0v['gray']('\x20\x20Current\x20answer:\x20')+a0v[an(0xba)](Q)+a0v['gray'](an(0xff))),console[an(0xda)](),console[an(0xda)](a0v[an(0x186)]('\x20\x20┌─────────────────────────────────────────────')),console['log'](a0v[an(0x186)](an(0x145))+a0v[an(0x1b3)][an(0x161)]('Q'+P+an(0x1c9)+O['category']+an(0x1a0)+(O['points']||0x335*-0x6+-0x1a2d+0x2d71)+an(0xf7))),console[an(0xda)](a0v['cyan']('\x20\x20│'));for(const T of String(O[an(0xef)])[an(0xf8)]('\x0a')){const U=T[an(0x100)]>0xfa9*-0x1+-0x1*-0x73c+0x3*0x2e3?T['slice'](0x5b3*-0x2+-0x6*-0x1cb+0x52*0x2,-0x16f7+0x2082+-0x952)+an(0x199):T;console['log'](a0v['cyan'](an(0x145))+a0v[an(0x161)](U));}console[an(0xda)](a0v[an(0x186)](an(0x14e))),console[an(0xda)](a0v[an(0x186)](an(0x145))+a0v[an(0x178)](an(0x1c0))+a0v[an(0x161)](an(0x1c1)+P)),console[an(0xda)](a0v[an(0x186)](an(0x145))+a0v[an(0x178)](an(0x17d))),console[an(0xda)](a0v[an(0x186)](an(0x190))),console[an(0xda)](),console['log'](a0v['bold']['white'](an(0xe6))),console[an(0xda)](),console[an(0xda)](a0v[an(0xba)](an(0xc2))+a0v['gray'](an(0x1bf))),console[an(0xda)](a0v[an(0xba)](an(0x17f))+a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Technique\x20hint\x20(pre-written)')),console['log'](a0v[an(0xba)](an(0x105))+a0v[an(0x178)](an(0x166))),console[an(0xda)](a0v[an(0x1b3)][an(0x152)](an(0x1cc))+a0v[an(0x178)](an(0x118))),console[an(0xda)](a0v[an(0x161)](an(0x198))+a0v['gray'](an(0xe0))),console[an(0xda)](a0v['gray'](an(0x17c))),console[an(0xda)](a0v[an(0x178)](an(0xfa))+a0v[an(0x161)](an(0x182))),console[an(0xda)](),console[an(0xda)](a0v[an(0x178)](an(0x15c))+a0v[an(0x178)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20chat,\x20return\x20to\x20exam')),console[an(0xda)](a0v[an(0x178)](an(0x151))+a0v[an(0x178)](an(0xdc))),console[an(0xda)](),w(),console[an(0xda)](a0v[an(0x178)]('\x20\x20Model:\x20Google\x20Gemma\x204\x20('+R+')')),console[an(0xda)]();}(F,E,M),!(-0x1ff5+-0x10e1+-0x186b*-0x2);}(B,C);}const x={};x[ak(0x19a)]=ak(0xdf),x[ak(0xd6)]=ak(0x183);const z=a0A()[ak(0x110)]||ak(0x124),A=x;try{y=await a0x(A);}catch(E){return void a0D(E['message']);}r=!(-0x779*0x5+0x1c33+-0x45*-0x22),u=-0x1*-0x2575+-0x244a+-0x12b,h=!(0x1a4c+-0x47*0x57+0x22a*-0x1),console[ak(0xda)](),console[ak(0xda)](a0v['green'][ak(0x1b3)]('\x20\x20═══\x20'+a0E(ak(0x1b0))+ak(0xbd))),console[ak(0xda)](),console[ak(0xda)](a0v[ak(0x161)]('\x20\x20'+a0E(ak(0x127)))),console['log'](),console[ak(0xda)](a0v[ak(0x186)]('\x20\x20┌─────────────────────────────────────────────')),console['log'](a0v[ak(0x186)]('\x20\x20│\x20')+a0v[ak(0x1b3)][ak(0x161)](a0E(ak(0x109)))),console[ak(0xda)](a0v[ak(0x186)](ak(0x14e))),console[ak(0xda)](a0v[ak(0x186)](ak(0x145))+a0v[ak(0x161)](a0E(ak(0xc3)))),console['log'](a0v[ak(0x186)](ak(0x145))+a0v[ak(0x152)](ak(0x171))),console[ak(0xda)](a0v[ak(0x186)]('\x20\x20│')),console['log'](a0v[ak(0x186)](ak(0x145))+a0v[ak(0x161)](a0E(ak(0x1d2)))),console[ak(0xda)](a0v['cyan'](ak(0x145))+a0v[ak(0x178)](ak(0x1a3))),console[ak(0xda)](a0v[ak(0x186)](ak(0x190))),console['log'](),console['log'](a0v[ak(0x161)]('\x20\x20'+a0E(ak(0x19b)))),console[ak(0xda)](),console[ak(0xda)](a0v['yellow'](ak(0xc2))+a0v[ak(0x178)]('\x20\x20\x20\x20'+a0E(ak(0x1c3)))),console[ak(0xda)](a0v[ak(0x178)](ak(0xc5)+a0E(ak(0x18a)))),console[ak(0xda)](a0v[ak(0xba)](ak(0x17f))+a0v['gray'](ak(0x140)+a0E(ak(0xcd)))),console[ak(0xda)](a0v[ak(0x178)](ak(0xc5)+a0E('ai4ctfHintBUses'))),console['log'](a0v[ak(0xba)](ak(0x105))+a0v[ak(0x178)](ak(0x140)+a0E(ak(0x1d8)))),console[ak(0xda)](a0v[ak(0x178)](ak(0xc5)+a0E('ai4ctfHintCUses'))),console[ak(0xda)](),console[ak(0xda)](a0v['gray'](ak(0x130))),console[ak(0xda)](a0v[ak(0x1b3)]['white']('\x20\x20'+a0E('ai4ctfWelcomeCta'))),console[ak(0xda)](ak(0x140)+a0v[ak(0x186)](ak(0x1b9))+a0v['gray'](ak(0x189)+a0E(ak(0x1ac)))),console[ak(0xda)](ak(0x140)+a0v[ak(0x186)](ak(0x1b8))+a0v[ak(0x178)](ak(0x189)+a0E(ak(0x1cf)))),console[ak(0xda)]('\x20\x20\x20\x20'+a0v[ak(0x186)](ak(0x194))+a0v[ak(0x178)](ak(0x189)+a0E(ak(0x14d)))),console['log'](a0v[ak(0x178)](ak(0x140)+a0E(ak(0xbb)))),console[ak(0xda)](),console[ak(0xda)](a0v[ak(0x161)]('\x20\x20'+a0E(ak(0x162)))),console[ak(0xda)](a0v[ak(0x178)]('\x20\x20'+a0E('ai4ctfOrChatExample')+'\x20')+a0v[ak(0x161)](ak(0x14b))),console[ak(0xda)](),console[ak(0xda)](a0v[ak(0xba)]('\x20\x20'+a0E(ak(0x1be)))),console[ak(0xda)](a0v[ak(0x161)](ak(0x1d6))+a0v[ak(0x178)](a0E(ak(0x15f)))),console[ak(0xda)](a0v[ak(0x161)](ak(0x141))+a0v[ak(0x178)](a0E(ak(0xce)))),console[ak(0xda)](a0v[ak(0x161)](ak(0xcc))+a0v[ak(0x178)](a0E(ak(0x103)))),console[ak(0xda)](a0v['gray'](ak(0xfa))+a0v[ak(0x161)](ak(0x13d))),console[ak(0xda)](a0v['gray'](ak(0x139)+a0E(ak(0xf2)))),console[ak(0xda)](),w(),console[ak(0xda)](a0v[ak(0x178)]('\x20\x20'+a0E(ak(0x11f))+ak(0x13f)+z+')')),console[ak(0xda)](a0v[ak(0x178)]('\x20\x20'+a0E(ak(0x12f)))),console['log']();});}
|
|
1
|
+
(function(j,k){const ac=a0k,q=j();while(!![]){try{const v=parseInt(ac(0x1a7))/(-0x2a5*0x8+0x1b5f+-0x9f*0xa)+parseInt(ac(0x1f9))/(-0x539+0x1*-0x16dd+-0x3e*-0x74)*(-parseInt(ac(0x226))/(-0x1ac8+0xc5b*-0x1+0x1393*0x2))+parseInt(ac(0x1ad))/(0xe85+0x1*-0x175a+0x8d9)*(parseInt(ac(0x1f7))/(0x1e30+-0x1*0x24c7+0x69c))+parseInt(ac(0x290))/(-0x8aa+-0x1cb*0xb+0x1c69)*(-parseInt(ac(0x256))/(-0x16*-0xc1+0x121d*0x1+0xe*-0x27a))+-parseInt(ac(0x225))/(-0xb6c+-0xb6*-0x1+0x19*0x6e)*(-parseInt(ac(0x288))/(-0x2c*0x91+-0x499*0x3+0xa0*0x3e))+-parseInt(ac(0x1e0))/(0x3c8+0x249c+-0x285a)*(-parseInt(ac(0x1dd))/(0x4*0x1be+-0x1*0xc00+-0x3*-0x1b1))+-parseInt(ac(0x1ea))/(-0x14b*0x3+-0x235d*-0x1+0x8*-0x3ee);if(v===k)break;else q['push'](q['shift']());}catch(x){q['push'](q['shift']());}}}(a0j,0x16246+-0x15a23f+0x21fccd*0x1));import a0v from'chalk';import{createChatSession as a0x}from'../lib/gemini.js';import{addTokenUsage as a0z}from'../lib/budget.js';import{getConfig as a0A}from'../lib/config.js';import{logCommand as a0B}from'../lib/logger.js';import{printMarkdown as a0C,printError as a0D}from'../lib/ui.js';import{t as a0E}from'../lib/i18n.js';import{getExamState as a0F,saveExamState as a0G}from'../lib/exam-state.js';const g=j=>new Promise(k=>setTimeout(k,j));let r=!(0x2*0x88f+-0x1*0x2359+0x123c),y=null,u=0x19a8+0x1*-0x17cb+-0x1dd,h=!(-0x12f2+0xbf5+0x6fe);function a0j(){const ao=['AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','q3j5ChrVz3jHCgH5','ywK0y3rMuMv2zwfSu2vLrMXHzW','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','ihrVig1VDMuGB24','icaGieHPBNqGyNvKz2v0igv4Agf1C3rLzcbMB3iGBgv2zwWG','icaGideUia','ywK0y3rMsgLUDejcB2r5','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','icdcTYaGuMuTzw50zxi6ia','icdIMQaG','icdILRGGsgLUDca','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','ihrVignVBNrPBNvL','ywK0y3rMsgLUDefcB2r5','icaGig1LBNu','ChvZAa','C2vUze1LC3nHz2u','quKGzxjYB3i6ia','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','icaGicaGigHPBNqGyIaGia','ywK0y3rMq21Ku2HLBgXmAw5L','icaGienVDwXKig5VDcbYzwfJAcbOAw50ihnLCNzLCI4Gq2HLy2SGEw91CIbJB25Uzwn0Aw9UlG','C2L6zq','sgLUDca','y3LHBG','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','C3rHCNrZv2L0Aa','ywK0y3rMq29TBwfUzhm','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','Dg9mB3DLCKnHC2u','yxr0ywnOzwreyxrH','ywK0y3rMv3jHCff1B3rHqq','zgvZy3jPChrPB24','icbbzNrLCIbLEgL0oIa','ywK0y3rMv3jHCfr5CgvdDgy0ywK','ywK0y3rMu2fTCgXL','ywK0y3rMv3jHCff1B3rHqG','ywK0y3rMv3jHCff1B3rHq0HPBNq','DhLWzufUzevUDgvYvg9czwDPBG','icbr','ywK0y3rMrMXHz0HPBNq','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','ywK0y3rMv3jHCeXPBMuXqM9KEq','Dg9Rzw4','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','mJG4mtqXA1bTtvnX','BwLU','AgLUDcbH','icdILiiG','icdILii','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','ihjLy29YzgvKoIa','ieLdt0f7lI4UFq','y29UDgLUDwu','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','oIbhB29NBguGr2vTBweGncaO','ywK0y3rMsgLUDem','C3rYAw5NAwz5','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','EwvSBg93','y29TBwfUza','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','ig5VDcbMB3vUzcbPBIbZDgf0zs4','ywK0y3rMsgLUDe5LEhrd','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','quK0q1rgihnLy3rPB24','sgLKzgvUie1LC3nHz2u','icbtDgLSBcbHDMfPBgfIBgu6ia','BM93','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','icbszxn1Bwu6ia','ywK0y3rMv3jHCe5LEhrcB2r5','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','ywK0y3rMq21KsgLUDeXPBMu','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','CgfKrw5K','icdINjmGqw5ZD2vYigzVCIbr','ywK0y3rMq29YCMvJDezSywC','ue9tva','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','DgvZDa','Dg9vChbLCKnHC2u','lI4VBgLIl2v4yw0TC3rHDguUANm','D2HPDgu','icaGigHPBNqGyW','Cu51Bq','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','DgLTzw91Da','ywK0y3rMvg9Rzw5Z','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','y3rMngfP','ywK0y3rMsgLUDejvC2vZ','icbvC2u6ia','icaGifn0DwnRpYbuCNK6ia','ndCXnZK3mxj2qM9ZDa','yM9Sza','lI4U','icaGicaGicaGicaGica','icaGiev4yw0GD2LUzg93ignSB3nLzc4','Cg9PBNrZ','z3jLzw4','ywrK','mte0ChrNCvb6','ywK0y3rMv3jHCeXPBMuXsgvHza','zxHHBsbHBNn3zxiG','icaGigHPBNqGyG','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','igLZigeGq1rgnefjihf1zxn0Aw9UicHHDhrHy2STDgHLlufjks4','icdILRGGia','ywK0y3rMv3jHCff1B3rHquHPBNq','iokaLca','BwvZC2fNzq','ihbVAw50CYK6cG','ywK0y3rMv3jHCe5LEhrtDwi','icbuAgLUA2LUzY4UlG','iokvKokvKokvKa','ywn0Aw9U','ywK0y3rMv3jHCff1B3rHC1rPDgXL','icaGicaGicaGicaGicaGicaGicbLlMCUia','ywK0y3rMrM91BMrgBgfN','ywK0y3rMtw9KzwW','ywK0y3rMrxHPDe5LEhruAxrSzq','iokaLcb0ExbLia','ywK0y3rMsw50zxjJzxb0zwq','lZeYodaWma','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','ywK0y3rMt3jdAgf0','DMXH','ywK0y3rMuMv2zwfSqM9KEq','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','CMvK','ywK0y3rM','CMvWzwf0','C2XPy2u','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','Bwf0y2G','E2nTzh0','y2f0zwDVCNK','CxvLC3rPB25Z','sunpqxT5B3vYx2zSywD9','BgvUz3rO','ywK0y3rMq2HHBgXLBMDL','Bgv2zwW','ywK0y3rMuMv2zwfStg9JA05VDgu','mJCWmdK1suvVDLDV','zMLUza','C29Tzq','q29UDgvUDc1uExbL','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','ywK0y3rMv3jHCff1B3rHqKHPBNq','nde3mZq2ognSr1jRDa','zxHHBsbXia','C3rKB3v0','ywK0y3rMrxHPDa','zxHPDa','zxHHBuLK','AgLUDa','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','icaGice8C2HLBgWGy21KpIaGica','x2XHC3rr','yMfJAW','imk3ia','ywK0y3rMsgLUDe5LEhrb','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','DhLWzq','z2vTAw5Ptw9KzwW','BwvUDq','E25VuhjVz30','C3vIBwL0idXMBgfNpG','icbfCNjVCJOG','icaGicaGia','DhjPBq','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','C3rHDhvZ','icaGicaGigHPBNqGysaGia','ywK0y3rMv3jHCeXPBMuYsgvHza','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','icaGia','icaKia','D3jPDgu','C3vIBwL0ia','g1SXqrTBmKS','z3jHEq','icbB','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','DMLHigfPngn0zIbJAgf0','Bg9N','vg9Rzw5Z','ywK0y3rMv3jHCe5LEhruAxrSzq','igzVCIbrmZK','ywK0y3rMsgLUDfrLy2HUAxf1zq','icaG4OAsia','ihDPBgWGB3bLBIbr','CM91BMq','xsaGWRCG','ihrVA2vUCYbSzwz0lG','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','nte4nZqWmLnyAKjhqq','ywK0y3rMrgvJB2rLza','icaGicaGigHPBNqGyYaGia','mZbJs05XreK','icdILzdILzdILzaG','AgLUDcbI','Dg9Rzw5ZvxnLza','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','igLZigeGBxvSDgLWBguTy2HVAwnLihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0Acbbl0iVqY9elG','BMfTzq','AgLUDhnvC2vK','yxbWBgLJyxrPB24VANnVBG','mtG1mZe3odbxsNHIuNK','ywK0y3rMu3vIBwL0q21K','AgfZ','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','ywK0y3rMsgLUDenvC2vZ','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','CMvWBgfJzq','yw5ZD2vYCW','CxvPDa','Dg9ju09tDhjPBMC','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','icbzB3uGy2fUihn0AwXSoIa','nxrLA2HssW','AgLUDcbJ','mte0r05wBLzg','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','igfNywLUihrVignOyw5NzsWGB3iG','icbgBgfNigzVCM1HDdOG','z2vTBweTnc0ZmwiTAxq','ywK0y3rMsgLUDencB2r5','icaI','zw5JB2rPBMC','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','zw50zxjLzef0','y3rMngvHAq','q29TBwfUzcbMywLSzwq','C2vZC2LVBG','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','Dg9Rzw5mAw1PDa','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rMrxHPDe5LEhrtDwi','ywLvC2fNzq','Aw50zxjHy3rPB25Z','ywK0y3rMrw5Ku2vZC2LVBG','C3bSAxq','ywK0y3rMsgLUDe51zgDL','ywK0y3rMsgLUDee','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','ywK0y3rMsgLUDefvC2vZ','ywK0y3rMrxHPDe5LEhrcB2r5','icbozxH0oIa','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','ig9UifeZoq','BM9KztPJAgLSzf9WCM9JzxnZ','y2f0y2G','icaGigv4AxqGicaGicaGicaGica','DgHPBMTPBMC','rNvSBcbXDwvZDgLVBJOGia','DxrMltG','cIaG','ixnOzwXS','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','Dgv4Da','yw5ZD2vYx3n1yM1PDhrLza','BNvTyMvY','ofPTC3znwa','mtm1m3zMs09REa'];a0j=function(){return ao;};return a0j();}const d=0x1*0x2ee7c+-0x1d6e4*0x2+0x2b34c,f=0x4efc+-0x6545+-0xf*-0x7ff;let m=null;export function isChatActive(){return r;}function w(){const ad=a0k,j=m?f:d,k=u,q=Math[ad(0x257)](Math['round'](k/j*(-0xceb+0x1dd8+-0x1089)),-0x1ed4+0x1*0x24a+0xe*0x211),v=Math[ad(0x1d9)](q/(0x24b1+0x7b*-0x47+0x5*-0x70)*(0x183c+-0x2415+0xbed)),x=-0xa0e+0x16a3+0x42b*-0x3-v,z=q>-0x2074+0x2127+-0x9*0xb?a0v['red']:q>0x6b*0x1d+-0x10f7+0x50a?a0v[ad(0x264)]:a0v[ad(0x28e)],A=m?ad(0x26a):ad(0x1d3);console[ad(0x1d2)](a0v[ad(0x1ce)]('\x20\x20'+A+':\x20')+z('█'[ad(0x19b)](v))+a0v[ad(0x1ce)]('░'[ad(0x19b)](x))+a0v['gray']('\x20'+k+'/'+j+'\x20('+q+'%)'));}export async function handleChatMessage(v){const ae=a0k;if(!y)return ae(0x1b1);if(a0B('ai4ctf:\x20'+v),m)return b(v);const x=v[ae(0x1c3)]()[ae(0x246)]()[ae(0x19e)](/^hint\s+([abc])$/);if(x)return function(C){const af=ae,D=a0E('a'===C?af(0x211):'b'===C?'ai4ctfHintB':af(0x261)),E=a0E('a'===C?af(0x235):'b'===C?af(0x22e):af(0x1ff)),F=af(0x240)+C[af(0x27a)](),G='a'===C?a0v[af(0x28e)]:'b'===C?a0v[af(0x264)]:a0v[af(0x199)];console[af(0x1d2)](),console[af(0x1d2)](G[af(0x289)]('\x20\x20▸\x20'+F+'\x20\x20')+a0v[af(0x1ce)](D)),console[af(0x1d2)]();for(const H of E['split']('\x0a'))''===H?console[af(0x1d2)]():console[af(0x1d2)](a0v['white']('\x20\x20\x20\x20'+H));console[af(0x1d2)](),'a'===C?(console['log'](a0v['gray'](af(0x1c9)+a0E(af(0x1b9))+'\x20')+a0v['cyan']('hint\x20b')),console[af(0x1d2)]()):'b'===C&&(console[af(0x1d2)](a0v['gray']('\x20\x20\x20\x20'+a0E('ai4ctfHintNextB')+'\x20')+a0v[af(0x241)](af(0x1f8))),console['log']());}(x[-0x1bdd+-0x1*-0x6fd+-0x5*-0x42d]),ae(0x25e);const z=v[ae(0x19e)](/^submit\s+(.+)/i);if(z){let C=z[-0x895+-0x1*0x12d3+0x923*0x3][ae(0x1c3)]();if(/^submit\s+/i[ae(0x279)](C)&&(C=C['replace'](/^submit\s+/i,'')[ae(0x1c3)]()),C=C[ae(0x1f1)](/^["'`]+|["'`]+$/g,'')[ae(0x1c3)](),ae(0x227)===C){console[ae(0x1d2)](),console[ae(0x1d2)](a0v[ae(0x28e)]['bold'](ae(0x194))),console['log'](a0v[ae(0x28e)][ae(0x289)]('\x20\x20'+a0E(ae(0x276)))),console[ae(0x1d2)](a0v[ae(0x28e)][ae(0x289)]('\x20\x20════════════════════════════════════')),console[ae(0x1d2)](),console[ae(0x1d2)](a0v['white']('\x20\x20'+a0E(ae(0x1de)))),console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20'+a0E('ai4ctfWouldEarn'))),console[ae(0x1d2)](),w(),r=!(-0x3d*-0x53+-0x16b*-0x17+-0x3463),y=null,fetch(ae(0x1bb),{'method':ae(0x277),'headers':{'Content-Type':ae(0x1e9)},'body':JSON[ae(0x262)]({'type':ae(0x19a),'solved':!(0xc38+0x638*-0x4+0xca8),'tokensUsed':u,'timestamp':new Date()[ae(0x1f4)]()}),'signal':AbortSignal['timeout'](-0x77f+-0x369+0x1e70)})['catch'](()=>{}),await g(-0xe57+0x1873+-0x440),console[ae(0x1d2)](),console['log'](a0v[ae(0x241)](ae(0x23a))),console['log'](a0v[ae(0x289)]['white']('\x20\x20'+a0E('ai4ctfWrapTitle'))),console['log'](a0v['cyan'](ae(0x23a))),console[ae(0x1d2)]();const D=a0E(ae(0x291)),E=a0E(ae(0x253));console[ae(0x1d2)](a0v['white'](ae(0x22d)+D+'\x20')+a0v['gray'](E[ae(0x20f)]('\x0a')[-0x1*0x2299+0xde7*0x1+-0x6e6*-0x3]||''));for(const I of E[ae(0x20f)]('\x0a')[ae(0x19c)](0xad6+-0x17*-0x29+-0xe84))I[ae(0x1c3)]()&&console['log'](a0v[ae(0x1ce)](ae(0x1c2)+I[ae(0x1f1)](/\{thinking\}/g,ae(0x21c))));console['log'](),console[ae(0x1d2)](a0v[ae(0x27c)]('\x20\x20\x20\x202.\x20'+a0E(ae(0x1c7))+'\x20')+a0v[ae(0x1ce)](a0E('ai4ctfWrapLine2Body'))),console['log'](),console[ae(0x1d2)](a0v[ae(0x241)](ae(0x269))),console[ae(0x1d2)](),await g(0x2483*-0x1+-0x139c+0x3fef),console['log'](a0v['cyan'](ae(0x23a))),console[ae(0x1d2)](a0v[ae(0x289)][ae(0x27c)]('\x20\x20'+a0E(ae(0x18c)))),console[ae(0x1d2)](a0v[ae(0x241)](ae(0x23a))),console[ae(0x1d2)](),console[ae(0x1d2)](a0v['yellow'](ae(0x1c6))+a0v[ae(0x27c)](a0E(ae(0x248))[ae(0x274)](0x9a*-0xf+0x80*-0x32+0x2220))+a0v[ae(0x1ce)](a0E(ae(0x298)))),console[ae(0x1d2)](a0v['yellow'](ae(0x23c))+a0v[ae(0x27c)](a0E(ae(0x24d))['padEnd'](0x1580*0x1+0x23ae*-0x1+0xe48*0x1))+a0v[ae(0x1ce)](a0E(ae(0x1ac)))),console[ae(0x1d2)](a0v['yellow'](ae(0x1df))+a0v['white'](a0E('ai4ctfWrapQuotaC')[ae(0x274)](-0xc*0x230+0x1*0x322+0x1738))+a0v['gray'](a0E(ae(0x24e)))),console['log']();for(const J of a0E('ai4ctfWrapQuotaFooter')['split']('\x0a'))console['log'](a0v['gray'](ae(0x1c9)+J));console[ae(0x1d2)](),await g(-0xe45*0x1+-0x67f*0x5+0x90*0x61),console['log'](a0v[ae(0x241)](ae(0x23a))),console[ae(0x1d2)](a0v[ae(0x289)][ae(0x27c)]('\x20\x20'+a0E(ae(0x1d4))+'\x20')+a0v[ae(0x199)][ae(0x289)]('ctf4ai')+a0v['white'](ae(0x299)+a0E(ae(0x29c)))),console['log'](a0v['cyan'](ae(0x23a))),console[ae(0x1d2)]();const F=a0E(ae(0x270)),G=a0E('ai4ctfWrapNoProg'),H=F['split']('\x0a');if(H[-0x1ebd+-0xbef+-0xaab*-0x4]){const [K,L]=H[-0x116*0x16+-0x1594+0x2d78*0x1][ae(0x20f)](ae(0x1bf));console[ae(0x1d2)](a0v[ae(0x27c)](ae(0x1c9)+(K||''))+a0v[ae(0x289)][ae(0x27c)](G)+a0v[ae(0x27c)](L||''));}for(const M of H[ae(0x19c)](0x5*0x45e+-0x99b*0x1+0x61d*-0x2))M[ae(0x1c3)]()&&console['log'](a0v[ae(0x27c)]('\x20\x20\x20\x20'+M));return console['log'](),console[ae(0x1d2)](a0v[ae(0x1ce)](ae(0x1c9)+a0E(ae(0x24b))+'\x20')+a0v['bold'][ae(0x199)]('ctf4ai')),console[ae(0x1d2)](),ae(0x1b1);}return console['log'](),console[ae(0x1d2)](a0v['red']('\x20\x20'+a0E('ai4ctfWrongFlag'))),console[ae(0x1d2)](a0v['gray']('\x20\x20'+a0E(ae(0x251)))),console[ae(0x1d2)](),'continue';}if(v[ae(0x243)]('!')){const N=v[ae(0x19c)](-0xc7+-0x5*0x277+0xd1b*0x1)[ae(0x1c3)]();if(!N)return ae(0x25e);try{const O={};O['encoding']=ae(0x21e),O[ae(0x280)]=0x2710;const {execSync:P}=await import('node:child_process'),Q=P(N,O)[ae(0x1c3)]();console['log'](),console[ae(0x1d2)](a0v[ae(0x1ce)](ae(0x1ca))+a0v[ae(0x27c)](N)),console[ae(0x1d2)](a0v[ae(0x27c)]('\x20\x20'+Q[ae(0x20f)]('\x0a')['join'](ae(0x21f)))),console['log'](),console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20'+a0E(ae(0x18e)))),console[ae(0x1d2)]();}catch(R){console[ae(0x1d2)](),console[ae(0x1d2)](a0v[ae(0x199)](ae(0x1c1)+(R[ae(0x29a)]?.[ae(0x20f)]('\x0a')[0x2*-0x274+-0x1a8*0x1+-0x18*-0x46]||'Command\x20failed'))),console[ae(0x1d2)]();}return'continue';}const A={};A['Content-Type']='application/json';if(ae(0x1b1)===v||ae(0x1b7)===v||ae(0x1f3)===v||ae(0x1be)===v)return r=!(0x1161+-0x120e+0xae),y=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':ae(0x277),'headers':A,'body':JSON[ae(0x262)]({'type':'ai4ctf','tokensUsed':u,'timestamp':new Date()[ae(0x1f4)]()}),'signal':AbortSignal['timeout'](0x10b7+0x212*0x4+0x1*-0x577)})[ae(0x21a)](()=>{}),console[ae(0x1d2)](),console[ae(0x1d2)](a0v['gray']('\x20\x20─────────────────────────────────────────')),console['log'](a0v['white']('\x20\x20'+a0E('ai4ctfReport'))),console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20'+a0E(ae(0x281))+':\x20'+u+ae(0x193))),console['log'](a0v[ae(0x1ce)]('\x20\x20'+a0E(ae(0x18f))+ae(0x216))),console[ae(0x1d2)](a0v['gray'](ae(0x202))),console[ae(0x1d2)](),console[ae(0x1d2)](a0v[ae(0x241)](ae(0x23a))),console[ae(0x1d2)](a0v[ae(0x27c)]('\x20\x20'+a0E(ae(0x190))+'\x20')+a0v[ae(0x289)][ae(0x199)]('ctf4ai')+a0v[ae(0x27c)](ae(0x299)+a0E(ae(0x20b)))),console['log'](a0v[ae(0x1ce)]('\x20\x20'+a0E(ae(0x214)))),console[ae(0x1d2)](a0v[ae(0x241)](ae(0x23a))),console[ae(0x1d2)](),console[ae(0x1d2)](a0v['white'](ae(0x297))+a0v['white'](a0E(ae(0x24f))[ae(0x1f1)](ae(0x19f),a0v[ae(0x289)][ae(0x199)]('ctf4ai')))),console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20\x20\x20\x20'+a0E('orBack'))),console['log'](),ae(0x1b1);const B={};B[ae(0x1aa)]=ae(0x1e9);if(!h&&u>=d)return h=!(-0x1134+-0x551*-0x1+0xbe3),fetch(ae(0x1bb),{'method':ae(0x277),'headers':B,'body':JSON[ae(0x262)]({'type':'ai4ctf','solved':!(-0x26eb+-0x13*-0x5e+0xff9*0x2),'tokensUsed':u,'timestamp':new Date()[ae(0x1f4)]()}),'signal':AbortSignal[ae(0x280)](-0xfe3+0x71f*0x3+-0xe*-0x101)})[ae(0x21a)](()=>{}),console['log'](),console[ae(0x1d2)](a0v['yellow']('\x20\x20'+a0E(ae(0x209)))),w(),(function(){const ag=ae;console[ag(0x1d2)](),console['log'](a0v[ag(0x264)](ag(0x23a))),console[ag(0x1d2)](a0v[ag(0x289)][ag(0x264)]('\x20\x20'+a0E('ai4ctfRevealTitle'))),console[ag(0x1d2)](a0v[ag(0x264)]('\x20\x20─────────────────────────────────────────────')),console[ag(0x1d2)]();for(const S of a0E(ag(0x197))[ag(0x20f)]('\x0a'))''===S?console[ag(0x1d2)]():console[ag(0x1d2)](a0v[ag(0x27c)](ag(0x1c9)+S));console['log'](),console[ag(0x1d2)](a0v[ag(0x241)](ag(0x27f))),console[ag(0x1d2)](),console[ag(0x1d2)](a0v['white']('\x20\x20\x20\x20'+a0E(ag(0x229)))),console[ag(0x1d2)](),console['log'](a0v[ag(0x28e)](ag(0x245))),console[ag(0x1d2)](),console['log'](a0v[ag(0x27c)](ag(0x1c9)+a0E(ag(0x1c8)))),console['log'](),console[ag(0x1d2)](a0v[ag(0x241)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console[ag(0x1d2)](),console[ag(0x1d2)](a0v['gray'](ag(0x1c9)+a0E(ag(0x1a6)))),console[ag(0x1d2)]();}()),'continue';if(h)return console[ae(0x1d2)](),console[ae(0x1d2)](a0v[ae(0x264)]('\x20\x20'+a0E('ai4ctfLockedTitle'))),console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20'+a0E('ai4ctfLockedUse')+'\x20')+a0v[ae(0x241)]('!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console['log'](a0v['gray']('\x20\x20'+a0E('ai4ctfLockedThen')+'\x20')+a0v[ae(0x241)](ae(0x283))),console[ae(0x1d2)](),ae(0x25e);console[ae(0x1d2)](a0v[ae(0x1ce)]('\x20\x20'+a0E('ai4ctfThinking')));try{const S=await y[ae(0x238)](v);process[ae(0x1af)][ae(0x1cb)](ae(0x1cd)),u+=S['tokensUsed'],a0z(S[ae(0x1e3)]),console['log'](),a0C(S[ae(0x222)]),w(),console[ae(0x1d2)]();}catch(T){process[ae(0x1af)][ae(0x1cb)](ae(0x1cd)),a0D(ae(0x239)+T[ae(0x29a)]),console[ae(0x1d2)]();}return'continue';}function a0k(a,b){a=a-(0x3d6+0x141+-0x38b);const c=a0j();let d=c[a];if(a0k['AcPkvZ']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x178c+-0x25db*0x1+0x9*0x197,o,p,q=0x196a+-0x65*0x3+-0x183b;p=i['charAt'](q++);~p&&(o=n%(0x1970+0x308+-0x25f*0xc)?o*(-0x7b1*0x1+0x1*-0x3d2+-0xbc3*-0x1)+p:p,n++%(-0x17dc+0xfcc+0x814))?l+=String['fromCharCode'](0xd19+-0x61*0x19+-0x2a1&o>>(-(-0x6*0x59d+0x2*-0xf6a+0x2*0x2042)*n&0x24b1+0x7b*-0x47+0x2*-0x147)):0x183c+-0x2415+0xbd9){p=j['indexOf'](p);}for(let r=-0xa0e+0x16a3+0xc95*-0x1,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x2074+0x2127+-0x1*0xa3))['slice'](-(0x6b*0x1d+-0x10f7+0x4da));}return decodeURIComponent(m);};a0k['FWXgJl']=e,a0k['tFCthJ']={},a0k['AcPkvZ']=!![];}const f=c[-0x1bdd+-0x1*-0x6fd+-0x8*-0x29c],g=a+f,h=a0k['tFCthJ'][g];return!h?(d=a0k['FWXgJl'](d),a0k['tFCthJ'][g]=d):d=h,d;}const p=new Set();async function b(v){const ah=a0k;if(!m||!y)return ah(0x1b1);const x=v['trim'](),z=x[ah(0x246)](),A=(Date[ah(0x26d)]()-m[ah(0x203)])/(0x1b1e9+0x1*0x10ae1+-0x1d26a);if(!m['nudgeShown']&&!m['submitAttempted']&&m[ah(0x1e8)][ah(0x23f)]>=-0x169*-0x1+0x21c2+-0x2329*0x1&&A>=0x17d7*0x1+0x62d*0x5+-0x36b3*0x1&&(m['nudgeShown']=!(0xad8+0xc*0x3f+0x1*-0xdcc),console['log'](),console[ah(0x1d2)](a0v[ah(0x264)]('\x20\x20💡\x20Once\x20you\x20have\x20ICOA{...},\x20submit\x20it\x20with:\x20')+a0v[ah(0x289)][ah(0x264)](ah(0x19d))),console['log'](a0v['gray'](ah(0x1f5))),console[ah(0x1d2)]()),/^ICOA\{[^}]+\}$/i['test'](x))return console[ah(0x1d2)](),console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x1ed))+a0v['white'](ah(0x1cc)+x)),b(ah(0x1cc)+x);const B=z['match'](/^hint\s+([abc])$/);if(B){const D=B[0xed5+0x1467*-0x1+0x593][ah(0x27a)]();m['hintsUsed']['add'](D);const E=a0F();E&&(E[ah(0x20d)]||(E['interactions']=[]),E[ah(0x20d)]['push']({'ts':new Date()[ah(0x1f4)](),'q':m[ah(0x27e)],'type':'hint_used','input':D}),a0G(E));const F='A'===D?a0v[ah(0x28e)]:'B'===D?a0v['yellow']:a0v['red'];console['log'](),console[ah(0x1d2)](F[ah(0x289)](ah(0x232)+D)),console[ah(0x1d2)]();const {requestHint:G}=await import(ah(0x1ab)),H=E?.[ah(0x206)]?.[ah(0x1b2)]||'',I=E?.[ah(0x206)]?.['token']||'';let J=null;if(H&&I)try{const K={};K['examId']=H,K[ah(0x254)]=I,K['question']=m[ah(0x27e)],K[ah(0x1a5)]=D,J=(await G(K))[ah(0x1b3)];}catch(L){0x1612+0x7a9+0x10a*-0x1b===L?.[ah(0x1c5)]?console[ah(0x1d2)](a0v[ah(0x264)](ah(0x22c)+D+'.')):-0x61*-0x55+-0x6cf*-0x5+-0x40a6===L?.['status']?console[ah(0x1d2)](a0v[ah(0x264)](ah(0x28c))):0xe09*-0x1+0x11*0x149+-0x63c===L?.['status']?console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x22a))):console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x23e)));}if(J){for(const M of String(J)['split']('\x0a'))console['log'](a0v[ah(0x27c)]('\x20\x20\x20\x20'+M));}return console[ah(0x1d2)](),'A'===D?console['log'](a0v[ah(0x1ce)](ah(0x287))+a0v[ah(0x241)]('hint\x20b')):'B'===D?console['log'](a0v[ah(0x1ce)](ah(0x1ef))+a0v[ah(0x241)](ah(0x1f8))):'C'===D&&console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x1c9)+a0E(ah(0x268))+'\x20')+a0v[ah(0x289)]['green'](ah(0x19d))),console['log'](),ah(0x25e);}const C=x[ah(0x19e)](/^submit\s+(.+)/i);if(C){let N=C[0x1*0x54d+-0x249+-0x303][ah(0x1c3)]();if(/^submit\s+/i[ah(0x279)](N)&&(N=N[ah(0x1f1)](/^submit\s+/i,'')[ah(0x1c3)]()),N=N['replace'](/^["'`]+|["'`]+$/g,'')['trim'](),/^[A-Da-d]$/['test'](N))return console[ah(0x1d2)](),console[ah(0x1d2)](a0v['yellow'](ah(0x200)+N+ah(0x273))),console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x1fd))+a0v['green'](ah(0x1a2))+a0v[ah(0x1ce)](ah(0x1d0))),console['log'](),'continue';const {getExamState:O,saveExamState:P}=await import('../lib/exam-state.js'),Q=O();if(!Q)return ah(0x1b1);if(!Q[ah(0x1a1)][ah(0x1a8)](T=>T['number']===m[ah(0x27e)]))return console[ah(0x1d2)](a0v['red'](ah(0x250)+m[ah(0x27e)]+ah(0x267))),ah(0x25e);const R=Q['answers'][m['qNum']];Q[ah(0x20d)]||(Q[ah(0x20d)]=[]),Q[ah(0x20d)][ah(0x237)]({'ts':new Date()[ah(0x1f4)](),'q':m['qNum'],'type':R?'answer_changed':ah(0x223),'input':N,'result':ah(0x1d1)}),Q[ah(0x1f2)][m[ah(0x27e)]]=N;const S=m[ah(0x27e)]+(0xfbd+0x3*0x776+-0xee*0x29);return Q[ah(0x1b6)]=S<=0x1350+-0x17cd+0x4a3?S:m[ah(0x27e)],P(Q),console[ah(0x1d2)](),R?(console[ah(0x1d2)](a0v['green']('\x20\x20✓\x20Q'+m[ah(0x27e)]+'\x20answer\x20updated:\x20')+a0v[ah(0x264)](N)),console['log'](a0v[ah(0x1ce)]('\x20\x20\x20\x20Previous:\x20'+R))):console[ah(0x1d2)](a0v['green'][ah(0x289)](ah(0x275)+m['qNum']+ah(0x25c)+N)),console['log'](a0v[ah(0x1ce)](ah(0x207))),console[ah(0x1d2)](),console[ah(0x1d2)](a0v[ah(0x1ce)]('\x20\x20')+a0v[ah(0x27c)]('submit\x20ICOA{...}')+a0v['gray'](ah(0x1fc))+a0v[ah(0x27c)](ah(0x1b1))+a0v[ah(0x1ce)](ah(0x22b))),S<=0x1*-0x1c7e+0x218d+-0x4e9?console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x24a))+a0v['cyan'](ah(0x19a))+a0v[ah(0x1ce)](ah(0x1d8)+S)):console['log'](a0v[ah(0x1ce)]('\x20\x20After\x20exit:\x20AI4CTF\x20section\x20complete.\x20Next:\x20')+a0v[ah(0x199)](ah(0x284))+a0v[ah(0x1ce)](ah(0x218))),console[ah(0x1d2)](),ah(0x25e);}if(v[ah(0x243)]('!')){const T=v[ah(0x19c)](0x59*-0x11+0xfda+0x8*-0x13e)[ah(0x1c3)]();if(!T)return ah(0x25e);try{const U={};U[ah(0x201)]=ah(0x21e),U[ah(0x280)]=0x2710;const {execSync:V}=await import(ah(0x219)),W=V(T,U)[ah(0x1c3)]();console[ah(0x1d2)](),console[ah(0x1d2)](a0v['gray'](ah(0x1ca))+a0v[ah(0x27c)](T)),console[ah(0x1d2)](a0v[ah(0x27c)]('\x20\x20'+W[ah(0x20f)]('\x0a')['join']('\x0a\x20\x20'))),console[ah(0x1d2)]();}catch(X){console[ah(0x1d2)](),console[ah(0x1d2)](a0v[ah(0x199)](ah(0x1c1)+(X[ah(0x29a)]?.[ah(0x20f)]('\x0a')[0x32b*0xc+-0x1b81+-0xa83]||ah(0x205)))),console['log']();}return ah(0x25e);}if(ah(0x1b1)===z||ah(0x1b7)===z||'quit'===z){const Y=m[ah(0x27e)],{getExamState:Z}=await import(ah(0x27b)),a0=Z(),a1=a0&&null!=a0[ah(0x1f2)][Y],a2=a0?.[ah(0x1b6)]||Y;return r=!(-0xe2b+-0x17e1*0x1+0x11*0x23d),y=null,m=null,p['clear'](),console[ah(0x1d2)](),console['log'](a0v[ah(0x1ce)](ah(0x294)+Y+'.')),a1&&a2>Y&&a2<=-0xc*0xb2+-0x1*-0x267d+-0x1dff?console[ah(0x1d2)](a0v[ah(0x27c)](ah(0x215))+a0v[ah(0x289)]['green']('Q'+a2)+a0v[ah(0x1ce)](ah(0x191))+a0v[ah(0x241)]('ai4ctf')+a0v['gray'](ah(0x234))):a1&&Y>=0x234d+0xc7*0x18+-0x1*0x35cf?console[ah(0x1d2)](a0v['white'](ah(0x221))+a0v['bold'][ah(0x199)](ah(0x284))+a0v[ah(0x1ce)](ah(0x1d5))):console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x26f))+a0v[ah(0x27c)]('exam\x20q\x20'+Y)+a0v[ah(0x1ce)](ah(0x230))+a0v[ah(0x27c)]('ai4ctf')),console[ah(0x1d2)](),ah(0x1b1);}if(h)return console[ah(0x1d2)](),console[ah(0x1d2)](a0v[ah(0x264)](ah(0x22f))),console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x26c))+a0v[ah(0x27c)]('submit\x20<flag>')+a0v[ah(0x1ce)](ah(0x1b8))+a0v[ah(0x27c)](ah(0x220))+a0v['gray']('\x20·\x20')+a0v[ah(0x27c)](ah(0x1b1))),console['log'](),ah(0x25e);if(u>=f)return h=!(-0x1*0xcd7+-0x68*-0x1d+0x1*0x10f),console[ah(0x1d2)](),console['log'](a0v[ah(0x199)]['bold'](ah(0x25b))),console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x1f6))+a0v[ah(0x27c)](ah(0x1c0))+a0v[ah(0x1ce)](ah(0x1b8))+a0v['white'](ah(0x220))+a0v[ah(0x1ce)]('\x20·\x20')+a0v[ah(0x27c)](ah(0x1b1))),console[ah(0x1d2)](),ah(0x25e);console[ah(0x1d2)](a0v[ah(0x1ce)](ah(0x29d)));try{const a3=await y[ah(0x238)](v);process['stdout'][ah(0x1cb)]('\x1b[1A\x1b[2K'),u+=a3['tokensUsed'];const {getRealExamState:a4,saveExamState:a5}=await import(ah(0x27b)),a6=a4(),a7={};a7[ah(0x19a)]=0x0,a7[ah(0x284)]=0x0,(a6&&(a6['aiUsage']||(a6[ah(0x20c)]=a7),a6[ah(0x20c)]['ai4ctf']=u,a5(a6)),console[ah(0x1d2)](),a0C(a3[ah(0x222)]),w(),function(a8,a9,aa){const ai=ah,ab=a8/a9*(0x1*-0xca1+-0x429+0x112e);ab>=-0x176*0x9+0x2*-0x3ae+0x14e1&&!aa[ai(0x1ec)]('95')?(console['log'](a0v[ai(0x199)]['bold'](ai(0x231)+Math[ai(0x1d9)](ab)+ai(0x295)+(a9-a8)+ai(0x1db))),aa[ai(0x28f)]('95')):ab>=-0x1c01*-0x1+-0x4*0x8a5+0x29*0x2b&&!aa[ai(0x1ec)]('80')?(console[ai(0x1d2)](a0v[ai(0x264)]('\x20\x20⚠\x2080%\x20of\x20section\x20AI\x20budget\x20used.')),aa['add']('80')):ab>=-0x55*-0x5+0xa61*-0x2+0xb*0x1c1&&!aa[ai(0x1ec)]('50')&&(console[ai(0x1d2)](a0v[ai(0x1ce)](ai(0x1ba))),aa[ai(0x28f)]('50'));}(u,f,p),console[ah(0x1d2)]());}catch(a8){process['stdout'][ah(0x1cb)]('\x1b[1A\x1b[2K'),a0D(ah(0x239)+a8[ah(0x29a)]),console[ah(0x1d2)]();}return ah(0x25e);}export function registerAi4ctfCommand(j){const aj=a0k;j[aj(0x265)]('ai4ctf')[aj(0x249)]('Chat\x20with\x20your\x20AI\x20teammate')[aj(0x29f)](async()=>{const ak=aj;a0B(ak(0x19a));const {getRealExamState:k}=await import(ak(0x27b)),q=k(),v=q?.[ak(0x1a1)][ak(0x1a9)](B=>ak(0x19a)===B[ak(0x1bc)]);if(q&&v){const B=q['_lastQ']||-0x113b+-0x2*-0xa06+-0x2d0,C=q[ak(0x1a1)][ak(0x1a8)](D=>D[ak(0x224)]===B);if(!C)return void a0D('Q'+B+ak(0x1b4)+B);if('ai4ctf'!==C['type']){if(console[ak(0x1d2)](),'ctf4ai'===C[ak(0x1bc)])console[ak(0x1d2)](a0v[ak(0x264)](ak(0x250)+B+ak(0x296))),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x286))+a0v['bold'][ak(0x199)](ak(0x284)));else{if(ak(0x196)===C['type'])console[ak(0x1d2)](a0v[ak(0x264)](ak(0x250)+B+ak(0x266))),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x286))+a0v[ak(0x289)][ak(0x241)](ak(0x204)));else{const D=q['questions'][ak(0x1a8)](E=>ak(0x19a)===E[ak(0x1bc)]);console[ak(0x1d2)](a0v[ak(0x264)](ak(0x250)+B+ak(0x1e6))),D&&(console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20AI4CTF\x20chat\x20is\x20available\x20on\x20practical\x20questions\x20(next:\x20Q'+D['number']+').')),console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20Jump\x20there:\x20')+a0v[ak(0x289)][ak(0x241)](ak(0x1ae)+D[ak(0x224)])));}}return void console[ak(0x1d2)]();}return void await async function(E,F){const al=ak,{getRealExamState:G,refetchQuestionDataIfStale:H,materializeAttachedData:I}=await import('../lib/exam-state.js');await H();const J=G();if(!J)return!(0x2*-0xd8b+0x24e*-0x7+-0x1*-0x2b39);const K=J[al(0x1a1)][al(0x1a8)](N=>N[al(0x224)]===E);K&&(F=K),I(E,F?.[al(0x247)]);const L=J['aiUsage']?.[al(0x19a)]??0x102b*-0x1+-0xe5*-0x10+0x1db;if(L>=f)return console[al(0x1d2)](),console[al(0x1d2)](a0v['yellow']('\x20\x20⚠\x20Your\x20AI4CTF\x20token\x20budget\x20is\x20exhausted.')),console['log'](a0v[al(0x1ce)](al(0x278))+a0v[al(0x27c)](al(0x292)+E+al(0x25d))),console[al(0x1d2)](),!(0x1a*0xec+0x4b1+-0x1ca8);try{y=await a0x(void(0xd5d+-0x3*-0x706+-0x226f),function(N,O){const am=al,P=N['description']||N[am(0x222)]||'',Q=N[am(0x247)]?am(0x1c4)+O+am(0x233)+N[am(0x247)]:'';return am(0x217)+O+',\x20'+N[am(0x1a0)]+',\x20'+(N[am(0x28d)]||-0x1998*-0x1+0x21fd+-0x3b8f*0x1)+am(0x29b)+P+Q+am(0x263)+O+'.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.';}(F,E));}catch(N){return a0D(N[al(0x29a)]),!(0x1f7*0xe+-0x10a0+-0xae1);}r=!(0x992+0x1*0x1bd2+0x959*-0x4),u=L,h=!(-0x205b+0x7e7*0x3+0x8a7),m={'qNum':E,'question':F,'usageField':al(0x19a),'enteredAt':Date[al(0x26d)](),'hintsUsed':new Set(),'submitAttempted':!(-0x99*0x3+-0x1*0x47e+0x23*0x2e),'nudgeShown':!(0xd84+0x2563+-0x32e6)};const M=J[al(0x1f2)]?.[E];return function(O,P,Q){const an=al,R=a0A()[an(0x1bd)]||an(0x1fe),S=u>0x1551+0x37*-0x73+0x364;console[an(0x1d2)](),console['log'](a0v[an(0x28e)][an(0x289)](an(0x20a)+P+':\x20'+O[an(0x1a0)]+an(0x29e))),S&&console['log'](a0v[an(0x1ce)](an(0x1dc))),Q&&console[an(0x1d2)](a0v[an(0x1ce)]('\x20\x20Current\x20answer:\x20')+a0v[an(0x264)](Q)+a0v['gray'](an(0x1f0))),console[an(0x1d2)](),console[an(0x1d2)](a0v['cyan']('\x20\x20┌─────────────────────────────────────────────')),console[an(0x1d2)](a0v[an(0x241)]('\x20\x20│\x20')+a0v[an(0x289)]['white']('Q'+P+an(0x1cf)+O['category']+an(0x1da)+(O[an(0x28d)]||0x187*0x4+0x14ce*-0x1+0x9d*0x18)+'\x20pts')),console[an(0x1d2)](a0v[an(0x241)](an(0x25a)));for(const T of String(O[an(0x222)])[an(0x20f)]('\x0a')){const U=T[an(0x1a3)]>-0xd*0xcd+0x14dd+0x147*-0x8?T[an(0x19c)](0x105*-0x1b+0x2b*0x52+0x1f7*0x7,0x11b0+-0xea9+0x2*-0x167)+an(0x28a):T;console['log'](a0v[an(0x241)](an(0x259))+a0v[an(0x27c)](U));}console[an(0x1d2)](a0v[an(0x241)](an(0x25a))),console[an(0x1d2)](a0v[an(0x241)](an(0x259))+a0v['gray'](an(0x21d))+a0v[an(0x27c)](an(0x1ae)+P)),console[an(0x1d2)](a0v[an(0x241)](an(0x259))+a0v[an(0x1ce)](an(0x242))),console['log'](a0v[an(0x241)](an(0x208))),console[an(0x1d2)](),console[an(0x1d2)](a0v['bold'][an(0x27c)](an(0x1e4))),console['log'](),console['log'](a0v[an(0x264)]('\x20\x20\x20\x20hint\x20a')+a0v[an(0x1ce)](an(0x25f))),console[an(0x1d2)](a0v['yellow'](an(0x293))+a0v[an(0x1ce)](an(0x252))),console[an(0x1d2)](a0v[an(0x264)]('\x20\x20\x20\x20hint\x20c')+a0v[an(0x1ce)](an(0x1e5))),console[an(0x1d2)](a0v[an(0x289)][an(0x28e)]('\x20\x20\x20\x20submit\x20ICOA{...}')+a0v[an(0x1ce)](an(0x255))),console['log'](a0v[an(0x27c)]('\x20\x20\x20\x20!python3\x20...')+a0v['gray'](an(0x1fb))),console[an(0x1d2)](a0v[an(0x1ce)](an(0x198))),console[an(0x1d2)](a0v[an(0x1ce)](an(0x18d))+a0v[an(0x27c)]('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[an(0x1d2)](),console[an(0x1d2)](a0v[an(0x1ce)]('\x20\x20\x20\x20exit')+a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20chat,\x20return\x20to\x20exam')),console[an(0x1d2)](a0v[an(0x1ce)](an(0x236))+a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Return\x20to\x20main\x20menu\x20(works\x20anywhere)')),console[an(0x1d2)](),w(),console[an(0x1d2)](a0v[an(0x1ce)](an(0x212)+R+')')),console[an(0x1d2)]();}(F,E,M),!(-0xf79*-0x2+-0x98f+-0x1563);}(B,C);}const x={};x[ak(0x1e7)]=ak(0x26b),x[ak(0x1a0)]=ak(0x228);const z=a0A()[ak(0x1bd)]||ak(0x1fe),A=x;try{y=await a0x(A);}catch(E){return void a0D(E[ak(0x29a)]);}r=!(-0x73c+-0x16b3+0x61*0x4f),u=-0x3*-0x563+-0xbb0+0x1*-0x479,h=!(-0x1491+-0x1*-0x1e74+-0x9e2),console[ak(0x1d2)](),console[ak(0x1d2)](a0v['green']['bold'](ak(0x1e1)+a0E('ai4ctfTitle')+ak(0x29e))),console['log'](),console[ak(0x1d2)](a0v[ak(0x27c)]('\x20\x20'+a0E(ak(0x24c)))),console[ak(0x1d2)](),console[ak(0x1d2)](a0v[ak(0x241)](ak(0x1fa))),console['log'](a0v[ak(0x241)](ak(0x259))+a0v[ak(0x289)][ak(0x27c)](a0E(ak(0x1a4)))),console[ak(0x1d2)](a0v[ak(0x241)]('\x20\x20│')),console[ak(0x1d2)](a0v[ak(0x241)](ak(0x259))+a0v['white'](a0E(ak(0x192)))),console[ak(0x1d2)](a0v[ak(0x241)](ak(0x259))+a0v[ak(0x28e)](ak(0x282))),console[ak(0x1d2)](a0v['cyan'](ak(0x25a))),console[ak(0x1d2)](a0v[ak(0x241)](ak(0x259))+a0v['white'](a0E('ai4ctfDecode'))),console[ak(0x1d2)](a0v[ak(0x241)]('\x20\x20│\x20')+a0v[ak(0x1ce)](ak(0x23b))),console[ak(0x1d2)](a0v[ak(0x241)]('\x20\x20└─────────────────────────────────────────────')),console[ak(0x1d2)](),console[ak(0x1d2)](a0v[ak(0x27c)]('\x20\x20'+a0E('ai4ctfLevels'))),console[ak(0x1d2)](),console[ak(0x1d2)](a0v[ak(0x264)]('\x20\x20\x20\x20hint\x20a')+a0v[ak(0x1ce)](ak(0x1c9)+a0E('ai4ctfHintA'))),console[ak(0x1d2)](a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0E(ak(0x213)))),console['log'](a0v['yellow'](ak(0x293))+a0v[ak(0x1ce)]('\x20\x20\x20\x20'+a0E('ai4ctfHintB'))),console[ak(0x1d2)](a0v['gray'](ak(0x28b)+a0E(ak(0x285)))),console[ak(0x1d2)](a0v[ak(0x264)](ak(0x27d))+a0v[ak(0x1ce)](ak(0x1c9)+a0E(ak(0x261)))),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x28b)+a0E(ak(0x1ee)))),console[ak(0x1d2)](),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x202))),console['log'](a0v[ak(0x289)][ak(0x27c)]('\x20\x20'+a0E('ai4ctfWelcomeCta'))),console[ak(0x1d2)]('\x20\x20\x20\x20'+a0v[ak(0x241)](ak(0x258))+a0v[ak(0x1ce)](ak(0x1d7)+a0E(ak(0x210)))),console[ak(0x1d2)](ak(0x1c9)+a0v[ak(0x241)](ak(0x1e2))+a0v[ak(0x1ce)]('\x20\x20\x20→\x20'+a0E(ak(0x1d6)))),console[ak(0x1d2)]('\x20\x20\x20\x20'+a0v[ak(0x241)](ak(0x1f8))+a0v[ak(0x1ce)](ak(0x1d7)+a0E('ai4ctfHintPrinciple'))),console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20\x20\x20'+a0E(ak(0x271)))),console[ak(0x1d2)](),console[ak(0x1d2)](a0v[ak(0x27c)]('\x20\x20'+a0E(ak(0x195)))),console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20'+a0E('ai4ctfOrChatExample')+'\x20')+a0v[ak(0x27c)](ak(0x26e))),console[ak(0x1d2)](),console['log'](a0v[ak(0x264)]('\x20\x20'+a0E(ak(0x244)))),console[ak(0x1d2)](a0v[ak(0x27c)]('\x20\x20\x20\x20hint\x20a\x20/\x20b\x20/\x20c\x20\x20')+a0v[ak(0x1ce)](a0E(ak(0x272)))),console['log'](a0v[ak(0x27c)]('\x20\x20\x20\x20submit\x20<flag>\x20\x20\x20')+a0v[ak(0x1ce)](a0E(ak(0x1eb)))),console[ak(0x1d2)](a0v[ak(0x27c)](ak(0x1b5))+a0v['gray'](a0E(ak(0x23d)))),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x18d))+a0v['white']('!echo\x20aWNv...\x20|\x20base64\x20-d')),console[ak(0x1d2)](a0v[ak(0x1ce)](ak(0x21b)+a0E(ak(0x20e)))),console[ak(0x1d2)](),w(),console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20'+a0E(ak(0x18f))+ak(0x260)+z+')')),console[ak(0x1d2)](a0v[ak(0x1ce)]('\x20\x20'+a0E(ak(0x1b0)))),console[ak(0x1d2)]();});}
|
package/dist/commands/aienv.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{execSync as o}from"node:child_process";import{existsSync as n,readFileSync as e,writeFileSync as t}from"node:fs";import{homedir as r}from"node:os";import chalk from"chalk";import{AIENV_MARKER_VERSION as l,aienvPaths as a,importCheckCmd as s,REQUIRED_PY as i,packagesForGroups as c,resolveHostPython as g}from"../lib/aienv.js";function p(n){try{return o(`${n} --version`,{encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return null}}function y(){return a(r())}function h(n){try{return o(`"${n}" -m pip --version`,{stdio:"ignore",timeout:15e3}),!0}catch{return!1}}function d(o){return n(o.python)}function u(n,e){try{return o(s(n,{name:e,import:e,spec:"",group:"core"}),{stdio:"ignore",timeout:15e3}),!0}catch{return!1}}export function registerAienvCommand(n){const e=n.command("aienv").description("Manage the AI/ML notebook-arena environment (separate venv)");e.command("status").alias("check").description("Show the AI/ML venv + installed packages").action(()=>m()),e.command("setup").option("--deep","also install the deep-learning stack (torch/transformers/datasets, multi-GB)").description("Create the venv + install the notebook/ML stack").action(async n=>{await async function(n){const e=y();console.log(),console.log(chalk.bold.white(" ICOA AI/ML Environment Setup")),console.log(chalk.gray(" ─────────────────────────────────────────────"));const r=function(){const n=g(p);if(n)return n;const e=process.platform;if("win32"===e)return console.log(chalk.yellow(` No Python ${i.major}.${i.minor} found — install it, then re-run:`)),console.log(chalk.cyan(" py -3.12 --version")+chalk.gray(" (or get it from https://python.org/downloads)")),console.log(chalk.gray(" No need for `env setup` — the arena only needs Python 3.12 + pip.")),null;console.log(chalk.yellow(` No Python ${i.major}.${i.minor} found — installing it (just Python, no CTF tools)...`));try{if("darwin"===e)o("brew --version",{stdio:"ignore"}),o("brew install python@3.12",{stdio:"inherit"});else{console.log(chalk.gray(" Installing python3.12 via apt (your system python3 stays untouched)..."));let n=!1;try{o("sudo apt-get install -y python3.12 python3.12-venv python3.12-dev",{stdio:"inherit"}),n=!0}catch{}n||(console.log(chalk.gray(" Not in default repos — adding deadsnakes PPA...")),o("sudo apt-get install -y software-properties-common && sudo add-apt-repository -y ppa:deadsnakes/ppa && sudo apt-get update",{stdio:"inherit"}),o("sudo apt-get install -y python3.12 python3.12-venv python3.12-dev",{stdio:"inherit"}));try{o("sudo python3.12 -m ensurepip --upgrade",{stdio:"inherit"})}catch{}}}catch{return console.log(chalk.red(` ✗ Could not auto-install Python ${i.major}.${i.minor}.`)),"darwin"===e?console.log(chalk.gray(" Install Homebrew (https://brew.sh) then: ")+chalk.cyan("brew install python@3.12")):console.log(chalk.gray(" Try manually: ")+chalk.cyan("sudo apt install python3.12 python3.12-venv")),null}const t=g(p);return t&&console.log(chalk.green(` ✓ Python ${t.version.major}.${t.version.minor} ready`)+chalk.gray(` (${t.cmd})`)),t}();if(!r)return console.log(chalk.red(` ✗ No Python ${i.major}.${i.minor} available — aienv is locked to the ${i.major}.${i.minor}.x line`)),console.log(chalk.gray(" for a uniform, max-compatibility ML stack. Install Python 3.12, then re-run ")+chalk.bold.cyan("aienv setup")+chalk.gray(".")),void console.log();console.log(chalk.green(" ✓ ")+chalk.white(`Host Python ${r.version.major}.${r.version.minor}`)+chalk.gray(` (${r.cmd}) — locked 3.12 line`));const a=n?["core","data","deep"]:["core","data"],s=c(a);console.log(chalk.gray(" This installs into ")+chalk.white(e.root)+chalk.gray(" (isolated venv):")),console.log(chalk.gray(` ${s.length} packages — ${a.join(", ")}`)),console.log(chalk.gray(" Estimated: ")+chalk.white(n?"~3 GB, 5-15 min":"~300 MB, 2-5 min")+chalk.gray(" (already-installed packages are skipped)")),console.log(chalk.gray(" Your system python3 is left untouched.")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log();let m=!1;if(d(e))console.log(chalk.green(" ✓ Venv already exists")+chalk.gray(" — reusing")),m=!0;else{console.log(chalk.gray(" Creating venv..."));try{o(`${r.cmd} -m venv "${e.root}"`,{stdio:"inherit"})}catch{return console.log(chalk.red(" ✗ Failed to create the venv.")),"linux"===process.platform&&console.log(chalk.gray(" On Ubuntu/Debian you may need the venv module: ")+chalk.cyan("sudo apt install python3.12-venv")),void console.log()}console.log(chalk.green(" ✓ Venv created"))}if(m&&!h(e.python)){console.log(chalk.gray(" Existing venv has no pip — recreating it cleanly from Python 3.12..."));try{o(`${r.cmd} -m venv --clear "${e.root}"`,{stdio:"inherit"})}catch{}h(e.python)&&console.log(chalk.green(" ✓ Venv recreated with pip"))}if(!h(e.python)){console.log(chalk.gray(" Bootstrapping pip into the venv..."));try{o(`"${e.python}" -m ensurepip --upgrade`,{stdio:["ignore","ignore","pipe"]})}catch{try{o(`curl -fsSL https://bootstrap.pypa.io/get-pip.py | "${e.python}"`,{stdio:["ignore","ignore","pipe"]})}catch{}}if(!h(e.python))return console.log(chalk.red(" ✗ The venv has no pip and it could not be bootstrapped — cannot install packages.")),"linux"===process.platform?console.log(chalk.gray(" Install the venv module, then recreate the venv:")+chalk.cyan("\n sudo apt install -y python3.12-venv")+chalk.cyan("\n rm -rf ~/.icoa/aienv && icoa aienv setup")):console.log(chalk.gray(" Your Python 3.12 (")+chalk.white(r.cmd)+chalk.gray(") can't bootstrap pip. Reinstall it, then re-run ")+chalk.cyan("aienv setup")+chalk.gray(":")+chalk.cyan("\n brew reinstall python@3.12")),void console.log();console.log(chalk.green(" ✓ pip ready"))}console.log(chalk.gray(" Upgrading pip/wheel/setuptools in the venv..."));try{o(`"${e.python}" -m pip install --upgrade pip wheel setuptools`,{stdio:["ignore","ignore","pipe"]})}catch(o){const n=function(o){const n=(o?.stderr?.toString()??"").split("\n").map(o=>o.trim()).filter(Boolean);return n.length?n[n.length-1].slice(0,120):""}(o);console.log(chalk.yellow(" ~ Could not upgrade pip tooling — continuing with the pip already in the venv (this is fine).")+(n?chalk.gray(`\n reason: ${n}`):""))}console.log();let v=0,$=0;const w=[];for(const n of s)if(u(e.python,n.import))console.log(chalk.green(` ✓ ${n.name}`)+chalk.gray(" (already installed)")),v++;else{console.log(chalk.cyan(` ⬇ ${n.name}`)+chalk.gray(` ${n.spec}`)+(n.note?chalk.gray(` — ${n.note}`):""));try{o(`"${e.python}" -m pip install "${n.spec}"`,{stdio:"inherit"}),u(e.python,n.import)?(console.log(chalk.green(` ✓ ${n.name} installed`)),v++):(console.log(chalk.red(` ✗ ${n.name} installed but failed to import`)),$++,w.push(n.name))}catch{console.log(chalk.red(` ✗ ${n.name} failed to install`)),$++,w.push(n.name)}}if(0===$){const o={version:l,hostPython:`${r.version.major}.${r.version.minor}`,venvPython:e.python,groups:a,packages:s.map(o=>o.name),created:(new Date).toISOString()};try{t(e.marker,`${JSON.stringify(o,null,2)}\n`)}catch{}}console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),0===$?(console.log(chalk.green(` ✓ AI/ML environment ready (${v}/${s.length}).`)),console.log(chalk.gray(" Inspect anytime: ")+chalk.cyan("aienv status"))):(console.log(chalk.yellow(` ~ Done with ${$} failure(s): ${w.join(", ")}`)),console.log(chalk.gray(" Re-run ")+chalk.cyan("aienv setup")+chalk.gray(" to retry the missing ones."))),console.log(),f()}(!!n.deep)}),e.command("path").description("Print the venv python path (for kernel/tool wiring)").action(()=>function(){const o=y();d(o)?console.log(o.python):console.log(chalk.yellow(" AI/ML venv not set up yet.")+chalk.gray(" Run ")+chalk.cyan("aienv setup"))}()),e.action(()=>m())}function m(){const o=y();console.log(),console.log(chalk.bold.white(" ICOA AI/ML Environment (notebook arena)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" A separate Python venv for the notebook arena — kept apart")),console.log(chalk.gray(" from the CTF toolkit (")+chalk.cyan("env")+chalk.gray(") and your system python3.")),console.log();const n=g(p);if(n?console.log(chalk.gray(" Host Python: ")+chalk.white(`${n.version.major}.${n.version.minor}`)+chalk.gray(` (${n.cmd})`)):(console.log(chalk.red(` ✗ No Python ${i.major}.${i.minor} found (aienv is locked to the ${i.major}.${i.minor}.x line)`)),console.log(chalk.gray(" No problem — ")+chalk.cyan("aienv setup")+chalk.gray(" installs Python 3.12 for you (just Python, no CTF tools)."))),console.log(chalk.gray(" Venv: ")+chalk.white(o.root)),console.log(),!d(o))return console.log(chalk.red(" ✗ Venv not created yet.")),console.log(chalk.gray(" Set it up: ")+chalk.bold.cyan("aienv setup")+chalk.gray(" (~300 MB, 2-5 min)")),console.log(),void f();const t=function(o){try{return JSON.parse(e(o.marker,"utf-8"))}catch{return null}}(o);t?(console.log(chalk.green(" ✓ Venv ready")+chalk.gray(` (created ${t.created.slice(0,10)})`)),console.log(chalk.gray(" groups: ")+chalk.white(t.groups.join(", "))+chalk.gray(" · python ")+chalk.white(t.hostPython))):console.log(chalk.yellow(" ~ Venv exists but no setup marker")+chalk.gray(" (run aienv setup to finalize)")),console.log();const r=c(t?.groups??["core","data"]);let l=0,a=0,s="";for(const n of r)n.group!==s&&(s=n.group,console.log(chalk.bold.gray(` ${v(n.group)}`))),u(o.python,n.import)?(console.log(chalk.green(` ✓ ${n.name}`)),l++):(console.log(chalk.red(` ✗ ${n.name}`)+chalk.gray(` → ${n.spec}`)),a++);console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────"));const h=l+a;console.log(` ${chalk.green(`✓ ${l}/${h}`)} ${a>0?chalk.red(`✗ ${a} missing`):chalk.green("All ready!")}`),a>0&&console.log(chalk.gray(" Reinstall missing: ")+chalk.cyan("aienv setup")),console.log(),f()}function v(o){return"core"===o?"Notebook kernel":"data"===o?"Data science":"Deep learning"}function f(){console.log(chalk.gray(" Back at the ")+chalk.cyan("icoa>")+chalk.gray(" prompt. ")+chalk.cyan("help")+chalk.gray(" for all commands.")),console.log()}
|
|
1
|
+
import{execSync as o}from"node:child_process";import{existsSync as n,readFileSync as e,writeFileSync as t}from"node:fs";import{homedir as r}from"node:os";import chalk from"chalk";import{AIENV_MARKER_VERSION as l,aienvPaths as a,importCheckCmd as s,REQUIRED_PY as i,packagesForGroups as c,resolveHostPython as g}from"../lib/aienv.js";function p(n){try{return o(`${n} --version`,{encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return null}}function y(){return a(r())}function h(n){try{return o(`"${n}" -m pip --version`,{stdio:"ignore",timeout:15e3}),!0}catch{return!1}}function d(o){return n(o.python)}function u(n,e){try{return o(s(n,{name:e,import:e,spec:"",group:"core"}),{stdio:"ignore",timeout:15e3}),!0}catch{return!1}}export function registerAienvCommand(n){const e=n.command("aienv").description("Manage the AI/ML notebook-arena environment (separate venv)");e.command("status").alias("check").description("Show the AI/ML venv + installed packages").action(()=>m()),e.command("setup").option("--deep","also install the deep-learning stack (torch/transformers/datasets, multi-GB)").description("Create the venv + install the notebook/ML stack").action(async n=>{await async function(n){const e=y();console.log(),console.log(chalk.bold.white(" ICOA AI/ML Environment Setup")),console.log(chalk.gray(" ─────────────────────────────────────────────"));const a=function(){const n=g(p,process.platform,r());if(n)return n;const e=process.platform;if("win32"===e)return console.log(chalk.yellow(` No Python ${i.major}.${i.minor} found — install it, then re-run:`)),console.log(chalk.cyan(" py -3.12 --version")+chalk.gray(" (or get it from https://python.org/downloads)")),console.log(chalk.gray(" No need for `env setup` — the arena only needs Python 3.12 + pip.")),null;console.log(chalk.yellow(` No Python ${i.major}.${i.minor} found — installing it (just Python, no CTF tools)...`));try{if("darwin"===e)o("brew --version",{stdio:"ignore"}),o("brew install python@3.12",{stdio:"inherit"});else{console.log(chalk.gray(" Installing python3.12 via apt (your system python3 stays untouched)..."));let n=!1;try{o("sudo apt-get install -y python3.12 python3.12-venv python3.12-dev",{stdio:"inherit"}),n=!0}catch{}n||(console.log(chalk.gray(" Not in default repos — adding deadsnakes PPA...")),o("sudo apt-get install -y software-properties-common && sudo add-apt-repository -y ppa:deadsnakes/ppa && sudo apt-get update",{stdio:"inherit"}),o("sudo apt-get install -y python3.12 python3.12-venv python3.12-dev",{stdio:"inherit"}));try{o("sudo python3.12 -m ensurepip --upgrade",{stdio:"inherit"})}catch{}}}catch{return console.log(chalk.red(` ✗ Could not auto-install Python ${i.major}.${i.minor}.`)),"darwin"===e?console.log(chalk.gray(" Install Homebrew (https://brew.sh) then: ")+chalk.cyan("brew install python@3.12")):console.log(chalk.gray(" Try manually: ")+chalk.cyan("sudo apt install python3.12 python3.12-venv")),null}const t=g(p,process.platform,r());return t&&console.log(chalk.green(` ✓ Python ${t.version.major}.${t.version.minor} ready`)+chalk.gray(` (${t.cmd})`)),t}();if(!a)return console.log(chalk.red(` ✗ No Python ${i.major}.${i.minor} available — aienv is locked to the ${i.major}.${i.minor}.x line`)),console.log(chalk.gray(" for a uniform, max-compatibility ML stack. Install Python 3.12, then re-run ")+chalk.bold.cyan("aienv setup")+chalk.gray(".")),void console.log();console.log(chalk.green(" ✓ ")+chalk.white(`Host Python ${a.version.major}.${a.version.minor}`)+chalk.gray(` (${a.cmd}) — locked 3.12 line`));const s=n?["core","data","deep"]:["core","data"],m=c(s);console.log(chalk.gray(" This installs into ")+chalk.white(e.root)+chalk.gray(" (isolated venv):")),console.log(chalk.gray(` ${m.length} packages — ${s.join(", ")}`)),console.log(chalk.gray(" Estimated: ")+chalk.white(n?"~3 GB, 5-15 min":"~300 MB, 2-5 min")+chalk.gray(" (already-installed packages are skipped)")),console.log(chalk.gray(" Your system python3 is left untouched.")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log();let v=!1;if(d(e))console.log(chalk.green(" ✓ Venv already exists")+chalk.gray(" — reusing")),v=!0;else{console.log(chalk.gray(" Creating venv..."));try{o(`${a.cmd} -m venv "${e.root}"`,{stdio:"inherit"})}catch{return console.log(chalk.red(" ✗ Failed to create the venv.")),"linux"===process.platform&&console.log(chalk.gray(" On Ubuntu/Debian you may need the venv module: ")+chalk.cyan("sudo apt install python3.12-venv")),void console.log()}console.log(chalk.green(" ✓ Venv created"))}if(v&&!h(e.python)){console.log(chalk.gray(" Existing venv has no pip — recreating it cleanly from Python 3.12..."));try{o(`${a.cmd} -m venv --clear "${e.root}"`,{stdio:"inherit"})}catch{}h(e.python)&&console.log(chalk.green(" ✓ Venv recreated with pip"))}if(!h(e.python)){console.log(chalk.gray(" Bootstrapping pip into the venv..."));try{o(`"${e.python}" -m ensurepip --upgrade`,{stdio:["ignore","ignore","pipe"]})}catch{try{o(`curl -fsSL https://bootstrap.pypa.io/get-pip.py | "${e.python}"`,{stdio:["ignore","ignore","pipe"]})}catch{}}if(!h(e.python))return console.log(chalk.red(" ✗ The venv has no pip and it could not be bootstrapped — cannot install packages.")),"linux"===process.platform?console.log(chalk.gray(" Install the venv module, then recreate the venv:")+chalk.cyan("\n sudo apt install -y python3.12-venv")+chalk.cyan("\n rm -rf ~/.icoa/aienv && icoa aienv setup")):console.log(chalk.gray(" Your Python 3.12 (")+chalk.white(a.cmd)+chalk.gray(") can't bootstrap pip. Reinstall it, then re-run ")+chalk.cyan("aienv setup")+chalk.gray(":")+chalk.cyan("\n brew reinstall python@3.12")),void console.log();console.log(chalk.green(" ✓ pip ready"))}console.log(chalk.gray(" Upgrading pip/wheel/setuptools in the venv..."));try{o(`"${e.python}" -m pip install --upgrade pip wheel setuptools`,{stdio:["ignore","ignore","pipe"]})}catch(o){const n=function(o){const n=(o?.stderr?.toString()??"").split("\n").map(o=>o.trim()).filter(Boolean);return n.length?n[n.length-1].slice(0,120):""}(o);console.log(chalk.yellow(" ~ Could not upgrade pip tooling — continuing with the pip already in the venv (this is fine).")+(n?chalk.gray(`\n reason: ${n}`):""))}console.log();let $=0,w=0;const k=[];for(const n of m)if(u(e.python,n.import))console.log(chalk.green(` ✓ ${n.name}`)+chalk.gray(" (already installed)")),$++;else{console.log(chalk.cyan(` ⬇ ${n.name}`)+chalk.gray(` ${n.spec}`)+(n.note?chalk.gray(` — ${n.note}`):""));try{o(`"${e.python}" -m pip install "${n.spec}"`,{stdio:"inherit"}),u(e.python,n.import)?(console.log(chalk.green(` ✓ ${n.name} installed`)),$++):(console.log(chalk.red(` ✗ ${n.name} installed but failed to import`)),w++,k.push(n.name))}catch{console.log(chalk.red(` ✗ ${n.name} failed to install`)),w++,k.push(n.name)}}if(0===w){const o={version:l,hostPython:`${a.version.major}.${a.version.minor}`,venvPython:e.python,groups:s,packages:m.map(o=>o.name),created:(new Date).toISOString()};try{t(e.marker,`${JSON.stringify(o,null,2)}\n`)}catch{}}console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),0===w?(console.log(chalk.green(` ✓ AI/ML environment ready (${$}/${m.length}).`)),console.log(chalk.gray(" Inspect anytime: ")+chalk.cyan("aienv status"))):(console.log(chalk.yellow(` ~ Done with ${w} failure(s): ${k.join(", ")}`)),console.log(chalk.gray(" Re-run ")+chalk.cyan("aienv setup")+chalk.gray(" to retry the missing ones."))),console.log(),f()}(!!n.deep)}),e.command("path").description("Print the venv python path (for kernel/tool wiring)").action(()=>function(){const o=y();d(o)?console.log(o.python):console.log(chalk.yellow(" AI/ML venv not set up yet.")+chalk.gray(" Run ")+chalk.cyan("aienv setup"))}()),e.action(()=>m())}function m(){const o=y();console.log(),console.log(chalk.bold.white(" ICOA AI/ML Environment (notebook arena)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" A separate Python venv for the notebook arena — kept apart")),console.log(chalk.gray(" from the CTF toolkit (")+chalk.cyan("env")+chalk.gray(") and your system python3.")),console.log();const n=g(p,process.platform,r());if(n?console.log(chalk.gray(" Host Python: ")+chalk.white(`${n.version.major}.${n.version.minor}`)+chalk.gray(` (${n.cmd})`)):(console.log(chalk.red(` ✗ No Python ${i.major}.${i.minor} found (aienv is locked to the ${i.major}.${i.minor}.x line)`)),console.log(chalk.gray(" No problem — ")+chalk.cyan("aienv setup")+chalk.gray(" installs Python 3.12 for you (just Python, no CTF tools)."))),console.log(chalk.gray(" Venv: ")+chalk.white(o.root)),console.log(),!d(o))return console.log(chalk.red(" ✗ Venv not created yet.")),console.log(chalk.gray(" Set it up: ")+chalk.bold.cyan("aienv setup")+chalk.gray(" (~300 MB, 2-5 min)")),console.log(),void f();const t=function(o){try{return JSON.parse(e(o.marker,"utf-8"))}catch{return null}}(o);t?(console.log(chalk.green(" ✓ Venv ready")+chalk.gray(` (created ${t.created.slice(0,10)})`)),console.log(chalk.gray(" groups: ")+chalk.white(t.groups.join(", "))+chalk.gray(" · python ")+chalk.white(t.hostPython))):console.log(chalk.yellow(" ~ Venv exists but no setup marker")+chalk.gray(" (run aienv setup to finalize)")),console.log();const l=c(t?.groups??["core","data"]);let a=0,s=0,h="";for(const n of l)n.group!==h&&(h=n.group,console.log(chalk.bold.gray(` ${v(n.group)}`))),u(o.python,n.import)?(console.log(chalk.green(` ✓ ${n.name}`)),a++):(console.log(chalk.red(` ✗ ${n.name}`)+chalk.gray(` → ${n.spec}`)),s++);console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────"));const m=a+s;console.log(` ${chalk.green(`✓ ${a}/${m}`)} ${s>0?chalk.red(`✗ ${s} missing`):chalk.green("All ready!")}`),s>0&&console.log(chalk.gray(" Reinstall missing: ")+chalk.cyan("aienv setup")),console.log(),f()}function v(o){return"core"===o?"Notebook kernel":"data"===o?"Data science":"Deep learning"}function f(){console.log(chalk.gray(" Back at the ")+chalk.cyan("icoa>")+chalk.gray(" prompt. ")+chalk.cyan("help")+chalk.gray(" for all commands.")),console.log()}
|
package/dist/commands/arena.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync as o,mkdirSync as e,readFileSync as a,writeFileSync as t}from"node:fs";import{homedir as n,tmpdir as r}from"node:os";import{join as i}from"node:path";import{createInterface as l}from"node:readline/promises";import chalk from"chalk";import{buildSubmitPayload as s}from"../lib/arena-submit.js";import{openFile as c}from"../lib/open-file.js";import{loadCurriculumById as g}from"../lib/learn-curricula.js";const d=["ioai","iaio","ai4sci","ai4quant","ctf4ai"],y="ioai";export function resolveTrackAndTask(o,e){return o?e?{track:o,task:e}:d.includes(o)?{track:o}:{track:y,task:o}:{track:y}}function u(){if(process.env.ICOA_ARENA_SERVER)return process.env.ICOA_ARENA_SERVER.replace(/\/$/,"");try{const o=JSON.parse(a(i(n(),".icoa","config.json"),"utf-8"));if("string"==typeof o.arenaServer&&o.arenaServer)return o.arenaServer.replace(/\/$/,"");if("string"==typeof o.ctfdUrl&&o.ctfdUrl)return o.ctfdUrl.replace(/\/$/,"")}catch{}return"https://practice.icoa2026.au"}async function p(o,e){try{const a=await fetch(u()+o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:AbortSignal.timeout(15e3)});return await a.json()}catch{return null}}async function f(o){try{const e=await fetch(u()+o,{signal:AbortSignal.timeout(15e3)});return await e.json()}catch{return null}}function h(o,e,a){const t=Math.max(0,Math.min(40,Math.round(o/a*40))),n=Math.round(e/a*40);let r="";for(let o=0;o<40;o++)r+=o===n?chalk.bold.yellow("┃"):o<t?chalk.green("█"):chalk.gray("░");return r}function b(){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(n,d){const y=function(o){return`${o}-frontier`}(n),u=l({input:process.stdin,output:process.stdout}),m=o=>u.question(o);try{console.log(),console.log(chalk.bold.cyan(` 🏟 ${n.toUpperCase()} ARENA`)+chalk.gray(" · frontier · 冲奖牌")),console.log(chalk.gray(" Real olympiad ML tasks. You run on Kaggle/Colab; we grade.")),console.log(),console.log(chalk.white(` Entry is gated behind ${n}-360 mastery (≥320/360).`));const l=(await m(chalk.cyan(` Your completed ${n}-360 token (or blank for panda PIN): `))).trim();let u="";l||(u=(await m(chalk.cyan(" panda exemption PIN: "))).trim());const k=await p("/api/icoa/arena/unlock",{token_360:l||void 0,pin:u||void 0});if(!k)return b();const w=k.data??k;if(!w.eligible){const o="number"==typeof w.score_360?w.score_360:0;return console.log(),console.log(chalk.gray(` ${n}-360: `)+h(o,320,360)),console.log(chalk.gray(" you: ")+chalk.bold.red(`${o}/360`)+chalk.gray(" need: ")+chalk.bold.yellow("320/360")),console.log(),console.log(chalk.yellow(` Not yet — keep going on ${n}-360, or enter the panda PIN.`)),void console.log()}const v=String(w.arena_token||""),_="number"==typeof w.score_360?w.score_360:320;console.log(),console.log(chalk.gray(` ${n}-360: `)+h(_,320,360)),w.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(v)),console.log();const $=await g(y),A=($?.cards??[]).filter(o=>"arena_task"===o.type);if(0===A.length)return void console.log(chalk.yellow(` No live arena tasks for ${n} yet — check back soon.`));let C=d?A.find(o=>o.task_id===d):void 0;if(!C){console.log(chalk.white(" Live tasks:")),A.forEach((o,e)=>{console.log(chalk.gray(` ${e+1}. `)+chalk.cyan(o.task_id)+chalk.gray(` — ${o.title}`))});const o=(await m(chalk.cyan(" Pick a task (number or id): "))).trim(),e=Number(o);C=!Number.isNaN(e)&&A[e-1]||A.find(e=>e.task_id===o)||void 0}if(!C)return void console.log(chalk.yellow(" No such task."));const N=C.task_id;console.log(),console.log(chalk.bold.white(` ${C.title}`)+chalk.gray(` · ${C.metric}`)),console.log(),console.log(chalk.gray(" Before you download anything — commit a guess (≤2 lines).")),console.log(chalk.gray(" Your intuition / approach. This is saved and CANNOT be changed."));const S=[(await m(chalk.cyan(" guess > "))).trim(),(await m(chalk.cyan(" guess > "))).trim()].filter(Boolean).join("\n");if(S){const o=await p(`/api/icoa/arena/${N}/guess`,{arena_token:v,guess:S}),e=o?.data??o;e?.ok?console.log(chalk.green(" ✓ guess locked.")):"already_set"===e?.reason&&console.log(chalk.gray(" (guess already locked earlier.)"))}console.log(),console.log(chalk.white(" Data:"));const T=await f(`/api/icoa/arena/${N}/data`),R=T?.data??T;if(R?.public_train&&R?.public_test){const o=i(process.cwd(),"icoa-arena",N),a=i(o,"public_train.csv"),n=i(o,"public_test.csv");try{e(o,{recursive:!0}),t(a,R.public_train),t(n,R.public_test);const r=R.meta??{},i="number"==typeof r.n_train?r.n_train:"?",l="number"==typeof r.n_test?r.n_test:"?",s="string"==typeof r.metric?r.metric:C.metric;console.log(chalk.green(" ✓ train: ")+chalk.white(a)+chalk.gray(` (${i} rows, has target)`)),console.log(chalk.green(" ✓ test: ")+chalk.white(n)+chalk.gray(` (${l} rows, predict these)`)),console.log(chalk.gray(` id: ${r.id_col??"id"} · target: ${r.target_col??"target"} · metric: ${s}`)),console.log(chalk.gray(" Compute in ")+chalk.bold.cyan("icoa ipynb")+chalk.gray(": train on public_train.csv, predict public_test.csv → save a predictions.csv."))}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.)"));console.log(),console.log(chalk.white(" Baseline / reference:"));for(const o of C.baseline_ref.split("\n"))console.log(chalk.gray(` ${o}`));if(C.dataset_ref&&console.log(chalk.gray(` Dataset: ${C.dataset_ref}`)),"y"===(await m(chalk.cyan(" Try to open the baseline now? (y/n): "))).trim().toLowerCase())if(/^https?:\/\//.test(C.baseline_ref.trim())){const o=C.baseline_ref.trim().split(/\s+/)[0],e=i(r(),`icoa-arena-${N}-baseline.ipynb`);try{const a=await fetch(o,{signal:AbortSignal.timeout(3e4)});a.ok?(t(e,Buffer.from(await a.arrayBuffer())),console.log(chalk.green(" ✓ downloaded: ")+chalk.white(e)),c(e)?console.log(chalk.gray(" opening in your default app (Jupyter/PyCharm)...")):console.log(chalk.gray(" open the file above in Jupyter / PyCharm."))):console.log(chalk.yellow(" Could not fetch — use the path/link above manually."))}catch{console.log(chalk.yellow(" Could not fetch — use the path/link above manually."))}}else console.log(chalk.gray(" This baseline is referenced, not a direct URL — fetch it from")),console.log(chalk.gray(" the location above (Kaggle/Colab), then come back to submit."));for(console.log(),console.log(chalk.gray(" Stuck? Reveal a hint (a–e) — usage is tracked. Or press enter to skip."));;){const o=(await m(chalk.cyan(" hint a-e (or enter to skip): "))).trim().toLowerCase();if(!o)break;if(!"abcde".includes(o)||1!==o.length){console.log(chalk.gray(" hints are a, b, c, d, or e."));continue}const e=await p(`/api/icoa/arena/${N}/hint`,{arena_token:v,level:o}),a=e?.data??e;a?.ok&&"string"==typeof a.hint?console.log(chalk.yellow(` hint ${o}: `)+chalk.white(a.hint)):console.log(chalk.gray(" (could not fetch that hint.)"))}for(console.log(),console.log(chalk.white(" Submit your predictions (")+chalk.gray(`${C.submission_format}`)+chalk.white("):")),console.log(chalk.gray(" • ")+chalk.cyan("all-in-CLI")+chalk.gray(": compute in ")+chalk.bold.cyan("icoa ipynb")+chalk.gray(", save a predictions.csv, paste its path.")),console.log(chalk.gray(" • or run on Kaggle/Colab → upload to Google Drive (link-viewable) → paste the share link.")),console.log(chalk.gray(" You get 5 submissions, then it locks."));;){const e=(await m(chalk.cyan(" predictions file path or drive link (enter to skip): "))).trim();if(!e)break;const t=s(e,v,{exists:o,read:o=>a(o,"utf-8")});"local"===t.source&&console.log(chalk.gray(" Uploading local predictions file…"));const n=await p(`/api/icoa/arena/${N}/submit`,t),r=n?.data??n;if(!r){b();break}if(!r.ok){if("locked"===r.reason){console.log(chalk.yellow(" Locked — you've used all 5 submissions."));break}console.log(chalk.yellow(" Submission rejected: ")+chalk.gray(String(r.reason||"error")));continue}const i=null==r.display_score?"n/a":`${Number(r.display_score).toFixed(1)}/100`;if(console.log(chalk.green(" ✓ scored: ")+chalk.bold.white(`${r.metric}=${Number(r.value).toFixed(4)}`)+chalk.gray(` (${i}) rank ${r.rank}/${r.field_size} · ${r.remaining} left`)),r.locked){console.log(chalk.gray(" That was your last submission — entry locked into the board."));break}}console.log();const j=await f(`/api/icoa/arena/${N}/leaderboard`),E=(j?.data??j)?.leaderboard??(Array.isArray(j?.leaderboard)?j.leaderboard:[]);if(Array.isArray(E)&&E.length){console.log(chalk.bold.white(" Leaderboard (anonymous):"));for(const o of E.slice(0,20))console.log(chalk.gray(` #${o.rank} `)+chalk.cyan(String(o.pseudonym))+chalk.gray(" ")+chalk.white(String(o.value))+(null==o.display_score?"":chalk.gray(` (${o.display_score}/100)`)))}else console.log(chalk.gray(" Leaderboard is empty or unavailable."));console.log()}finally{u.close()}}export function registerArenaCommand(o){o.command("arena [track] [task]",{hidden:!0}).description("Arena (<track>-frontier) — gated hands-on olympiad tasks with a server-graded leaderboard").action(async(o,e)=>{const{track:a,task:t}=resolveTrackAndTask(o,e);await runArena(a,t)})}
|
|
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{createInterface as i}from"node:readline/promises";import chalk from"chalk";import{buildSubmitPayload as s}from"../lib/arena-submit.js";import{loadCurriculumById as l}from"../lib/learn-curricula.js";const c=["ioai","iaio","ai4sci","ai4quant","ctf4ai"],d="ioai";export function resolveTrackAndTask(e,o){return e?o?{track:e,task:o}:c.includes(e)?{track:e}:{track:d,task:e}:{track:d}}function g(){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 u(e,o){try{const t=await fetch(g()+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 p(e){try{const o=await fetch(g()+e,{signal:AbortSignal.timeout(15e3)});return await o.json()}catch{return null}}function y(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 m(){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,c){const d=function(e){return`${e}-frontier`}(r),g=i({input:process.stdin,output:process.stdout}),h=e=>g.question(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 i=(await h(chalk.cyan(` Your completed ${r}-360 token (or blank for panda PIN): `))).trim();let g="";i||(g=(await h(chalk.cyan(" panda exemption PIN: "))).trim());const f=await u("/api/icoa/arena/unlock",{token_360:i||void 0,pin:g||void 0});if(!f)return m();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: `)+y(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: `)+y(_,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 l(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 $=c?v.find(e=>e.task_id===c):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 h(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 h(chalk.cyan(" approach > "))).trim(),E=[S,S?(await h(chalk.cyan(" approach > "))).trim():""].filter(Boolean).join("\n");if(E){const e=await u(`/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 p(`/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 h(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 u(`/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 h(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 u(`/api/icoa/arena/${A}/submit`,a),n=r?.data??r;if(!n){m();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 p(`/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)=>{const{track:t,task:a}=resolveTrackAndTask(e,o);await runArena(t,a)})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(b,f){const a7=a0f,h=b();while(!![]){try{const j=-parseInt(a7(0x279))/(-0x5*0x17d+-0x4*-0x6fb+-0x147a)*(parseInt(a7(0x21c))/(0x774+-0x3c2+0x1d8*-0x2))+parseInt(a7(0x237))/(-0x1f*-0xf9+0x1088+-0x2eac)+parseInt(a7(0x20c))/(0x196b+-0x1622+0x1b*-0x1f)+parseInt(a7(0x235))/(-0xc3*0x13+-0x653+0x14d1)*(parseInt(a7(0x253))/(-0x991*0x3+-0x1a5c+-0x3b*-0xef))+-parseInt(a7(0x21d))/(-0xe3b*0x2+-0x74f+-0x23cc*-0x1)*(-parseInt(a7(0x24f))/(0x105d+-0x1f47+0xef2))+-parseInt(a7(0x1fe))/(0x2*0x134f+0x41c+0x3*-0xe3b)+-parseInt(a7(0x2b1))/(0x4*0x8b0+-0x1*-0x18eb+-0x3ba1);if(j===f)break;else h['push'](h['shift']());}catch(k){h['push'](h['shift']());}}}(a0b,-0x1231a9+-0x20779*0x7+0x2bbcef));import a0j from'chalk';import{createChatSession as a0k}from'../lib/gemini.js';import{logCommand as a0p}from'../lib/logger.js';import{printError as a0q}from'../lib/ui.js';import{getConfig as a0v}from'../lib/config.js';import{getRetryQueue as a0w}from'../lib/demo-stats.js';import{t as a0x}from'../lib/i18n.js';function s(b,f){const a8=a0f,h=a0v()[a8(0x268)]||'gemma-4-31b-it',j=a0w(),k=!!(j&&j[a8(0x22f)]>0xef3*0x1+-0xd63+-0x190);if(console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x2cb)]('\x20\x20═══════════════════════════════════════════════')),console[a8(0x1f0)](a0j[a8(0x255)][a8(0x222)](a8(0x1e5)+a0x(a8(0x2d1)))),console[a8(0x1f0)](a0j[a8(0x2cb)](a8(0x289))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j['white']('\x20\x20'+a0x(a8(0x245)))),console['log'](a0j[a8(0x221)](a8(0x28c)+a0x(a8(0x1e6)))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x222)]('\x20\x20'+a0x('reportStage2'))),console[a8(0x1f0)](a0j[a8(0x221)](a8(0x28c)+a0x(a8(0x2cf)))),console['log'](a0j[a8(0x20f)](a8(0x28c)+a0x(a8(0x286)))),console['log'](a0j[a8(0x20f)](a8(0x28c)+a0x(a8(0x24a)))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x222)]('\x20\x20'+a0x('reportStage3'))),b?console['log'](a0j[a8(0x221)](a8(0x28c)+a0x('reportSolved'))):console[a8(0x1f0)](a0j[a8(0x27b)](a8(0x28c)+a0x(a8(0x2ce)))),console[a8(0x1f0)](a0j[a8(0x20f)](a8(0x28c)+a0x('ai4ctfTokens')+':\x20'+f+'/'+g)),console[a8(0x1f0)](),console['log'](a0j[a8(0x2cb)](a8(0x2c2))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x255)][a8(0x222)]('\x20\x20'+a0x(a8(0x1e7)))),console[a8(0x1f0)](a0j['gray'](a8(0x2bf)+a0x(a8(0x269)))),console[a8(0x1f0)](a0j[a8(0x20f)](a8(0x2bf)+a0x(a8(0x277)))),console[a8(0x1f0)](a0j[a8(0x20f)]('\x20\x20·\x20'+a0x('reportRec3'))),console[a8(0x1f0)](a0j[a8(0x20f)](a8(0x2bf)+a0x('reportRec4'))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x20f)]('\x20\x20'+a0x(a8(0x20e))+a8(0x26a)+h+')')),console[a8(0x1f0)](),console[a8(0x1f0)](a0j[a8(0x2cb)](a8(0x2c2))),console[a8(0x1f0)](),console[a8(0x1f0)](a0j['white']('\x20\x20'+a0x(a8(0x28b)))),console[a8(0x1f0)](a0j['white']('\x20\x20'+a0x(a8(0x282)))),console[a8(0x1f0)](),k&&(console[a8(0x1f0)](a0j[a8(0x222)](a8(0x2ac)+a0x(a8(0x274))+'\x20')+a0j[a8(0x255)]['cyan'](a8(0x28e))),console[a8(0x1f0)]()),console[a8(0x1f0)](a0j['cyan'](a8(0x2c2))),console[a8(0x1f0)](a0j[a8(0x222)]('\x20\x20'+a0x(a8(0x260)))),k){const p=j['length'],q=a0x(0xe10+-0x59d*0x1+-0x872===p?a8(0x238):a8(0x1ef));console[a8(0x1f0)](a0j[a8(0x2cb)](a8(0x219))+a0j['gray'](a8(0x2c3)+q['replace'](a8(0x230),String(p))));}console[a8(0x1f0)](a0j[a8(0x2cb)](a8(0x297))+a0j['gray']('\x20\x20'+a0x(a8(0x291)))),console[a8(0x1f0)](a0j['white'](a8(0x20a))+a0j[a8(0x20f)](a8(0x1f5)+a0x('reportBackHint'))),console[a8(0x1f0)](a0j[a8(0x222)]('\x20\x20\x20\x20demo')+a0j[a8(0x20f)](a8(0x1f5)+a0x(a8(0x265)))),console['log'](a0j[a8(0x222)](a8(0x1e8))+a0j[a8(0x20f)](a8(0x2c3)+a0x(a8(0x2b7)))),console['log'](),console['log'](a0j[a8(0x27b)](a8(0x2b5))),console[a8(0x1f0)](a0j[a8(0x2cb)]['underline']('\x20\x20https://icoa2026.au')),console[a8(0x1f0)]();}let r=!(0x1571*0x1+0x1b2a+-0x184d*0x2),i=null,c=0x1*0xfd3+0x234e+-0x3321;function a0f(a,b){a=a-(0x89f+-0xa01+0x9*0x5d);const c=a0b();let d=c[a];if(a0f['PxFotI']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x1*0xd87+0x1cb1*0x1+-0xf2a,o,p,q=-0x134e+0xe10+-0x53e*-0x1;p=i['charAt'](q++);~p&&(o=n%(0x5b5*-0x3+-0xb*-0x1f3+-0x3a*0x13)?o*(0x1*0xfd3+0x234e+-0x32e1)+p:p,n++%(-0x18a7+0x29*0x43+0x4*0x37c))?l+=String['fromCharCode'](0x257+0x2014+-0x216c&o>>(-(0xb8a+-0x7da+0x2*-0x1d7)*n&-0x6*0x18a+0x1952+-0x1010)):0x910+-0x217c+0x186c){p=j['indexOf'](p);}for(let r=0x1557+0x31a*0x8+-0x2e27,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xefe+-0x19eb+0x28f9))['slice'](-(0xa*-0x19f+-0x18c0+0x28f8));}return decodeURIComponent(m);};a0f['jnKLAI']=e,a0f['NqyhVY']={},a0f['PxFotI']=!![];}const f=c[-0x2*0x12d8+0x2f5+0x22bb*0x1],g=a+f,h=a0f['NqyhVY'][g];return!h?(d=a0f['jnKLAI'](d),a0f['NqyhVY'][g]=d):d=h,d;}const g=-0x18a7+0x29*0x43+0x4*0x669,y=0xbb4+0xa065+-0x4a71;let u=null;export function isCtf4aiActive(){return r;}export async function handleCtf4aiMessage(f){const a9=a0f;if(!i)return'exit';if(a0p('ctf4ai:\x20'+f),u)return m(f);const h={};h['Content-Type']=a9(0x23d);if(a9(0x2c6)===f||a9(0x275)===f||'quit'===f||a9(0x227)===f)return r=!(0xb8a+-0x7da+0x1*-0x3af),i=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a9(0x2b0),'headers':h,'body':JSON[a9(0x2c1)]({'type':a9(0x288),'solved':!(-0x6*0x18a+0x1952+-0x1015),'tokensUsed':c,'timestamp':new Date()[a9(0x2b6)]()}),'signal':AbortSignal[a9(0x231)](0x910+-0x217c+0x2bf4)})['catch'](()=>{}),console['log'](),console[a9(0x1f0)](a0j[a9(0x20f)]('\x20\x20'+a0x(a9(0x29b)))),s(!(0x1557+0x31a*0x8+-0x2e26),c),'exit';if(c>=g)return console[a9(0x1f0)](),console[a9(0x1f0)](a0j[a9(0x27b)]('\x20\x20'+a0x(a9(0x2a8)))),console[a9(0x1f0)](a0j[a9(0x222)]('\x20\x20'+a0x(a9(0x23c)))),r=!(-0xefe+-0x19eb+0x28ea),i=null,fetch(a9(0x241),{'method':a9(0x2b0),'headers':{'Content-Type':a9(0x23d)},'body':JSON[a9(0x2c1)]({'type':a9(0x288),'solved':!(0xa*-0x19f+-0x18c0+0x28f7),'tokensUsed':c,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal['timeout'](-0x2*0x12d8+0x2f5+0x3643*0x1)})[a9(0x29c)](()=>{}),s(!(0x393*-0x4+-0x23b5+0x3202),c),'exit';try{console[a9(0x1f0)](a0j[a9(0x20f)]('\x20\x20'+a0x(a9(0x299))));const {text:j,tokensUsed:k}=await i[a9(0x200)](f);c+=k,process[a9(0x2be)][a9(0x2b2)](a9(0x240)),console[a9(0x1f0)](),console['log'](a0j[a9(0x222)](a9(0x26f))+j),console[a9(0x1f0)](),console[a9(0x1f0)](a0j[a9(0x20f)](a9(0x2d0)+c+'/'+g+a9(0x207)));const p=c>=(-0x215e+0x1cd6+0x488+0.5)*g,q=/koala/i[a9(0x26e)](j),v=p&&/k[\s.\-_·*]+o[\s.\-_·*]+a[\s.\-_·*]+l[\s.\-_·*]+a/i[a9(0x26e)](j);return q||v?(console[a9(0x1f0)](),console[a9(0x1f0)](a0j[a9(0x221)][a9(0x255)](a9(0x28a))),console['log'](a0j['green']['bold']('\x20\x20'+a0x('ctf4aiSuccess'))),console[a9(0x1f0)](a0j[a9(0x221)][a9(0x255)](a9(0x28a))),console[a9(0x1f0)](),console['log'](a0j['white']('\x20\x20'+a0x(a9(0x270)))),console['log'](a0j[a9(0x20f)]('\x20\x20'+a0x(a9(0x1f2)))),r=!(-0x258c+0x1ac2+0xacb),i=null,fetch(a9(0x241),{'method':a9(0x2b0),'headers':{'Content-Type':a9(0x23d)},'body':JSON[a9(0x2c1)]({'type':a9(0x288),'solved':!(0x1b8b+-0x8*0x39a+-0x19*-0xd),'tokensUsed':c,'timestamp':new Date()[a9(0x2b6)]()}),'signal':AbortSignal['timeout'](-0x10a+-0x2062+0x34f4)})[a9(0x29c)](()=>{}),s(!(0x115c+-0x2b*0x61+-0x111),c),'solved'):'continue';}catch(w){return a0q(a9(0x23a)+w[a9(0x292)]),'continue';}}const d=new Set();async function m(j){const aa=a0f;if(!u||!i)return aa(0x2c6);const k=j['trim'](),p=k[aa(0x20d)](),q=p[aa(0x280)](/^hint\s+([abc])$/);if(q){const w=q[0x17e7+0x5d8+-0x2f*0xa2][aa(0x22b)](),x='A'===w?a0j[aa(0x221)]:'B'===w?a0j[aa(0x27b)]:a0j[aa(0x1e3)];console['log'](),console[aa(0x1f0)](x[aa(0x255)](aa(0x1f6)+w)),console[aa(0x1f0)]();const {getExamState:z}=await import(aa(0x220)),{requestHint:A}=await import(aa(0x2ae)),B=z(),C=B?.[aa(0x2cc)]?.[aa(0x256)]||'',D=B?.[aa(0x2cc)]?.['token']||'';let E=null;if(C&&D)try{const F={};F['examId']=C,F[aa(0x229)]=D,F[aa(0x2a3)]=u[aa(0x249)],F['level']=w,E=(await A(F))[aa(0x2a2)];}catch(G){-0x1*0x1bd7+-0xbd8+0x295c===G?.[aa(0x273)]?console[aa(0x1f0)](a0j[aa(0x27b)](aa(0x2bb)+w+'.')):0x99b*0x2+-0x84e+0x94e*-0x1===G?.[aa(0x273)]?console[aa(0x1f0)](a0j[aa(0x27b)](aa(0x263))):0x172e+-0x1*0x329+-0x1271===G?.[aa(0x273)]?console['log'](a0j[aa(0x20f)](aa(0x293))):console['log'](a0j[aa(0x20f)](aa(0x1fd)));}if(E){for(const H of String(E)[aa(0x1fb)]('\x0a'))console[aa(0x1f0)](a0j[aa(0x222)](aa(0x28c)+H));}return console[aa(0x1f0)](),'A'===w?console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x1f3))+a0j['cyan'](aa(0x27f))):'B'===w&&console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x285))+a0j[aa(0x2cb)](aa(0x267))),console['log'](),aa(0x2bd);}if(/^ICOA\{[^}]+\}$/i[aa(0x26e)](k))return m(aa(0x283)+k);const v=k[aa(0x280)](/^submit\s+(.+)/i);if(v){let I=v[-0x2*-0x106a+-0x1759+0x97a*-0x1]['trim']();if(/^submit\s+/i[aa(0x26e)](I)&&(I=I[aa(0x2af)](/^submit\s+/i,'')[aa(0x1ea)]()),I=I[aa(0x2af)](/^["'`]+|["'`]+$/g,'')[aa(0x1ea)](),/^[A-Da-d]$/['test'](I))return console[aa(0x1f0)](),console[aa(0x1f0)](a0j[aa(0x27b)](aa(0x225)+I+aa(0x208))),console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x2a5))+a0j[aa(0x221)](aa(0x21f))+a0j[aa(0x20f)](aa(0x218))),console['log'](),aa(0x2bd);const {getExamState:J,saveExamState:K}=await import(aa(0x220)),L=J();if(!L)return aa(0x2c6);const M=L[aa(0x1eb)][u[aa(0x249)]];L['interactions']||(L[aa(0x233)]=[]),L[aa(0x233)][aa(0x248)]({'ts':new Date()[aa(0x2b6)](),'q':u['qNum'],'type':M?aa(0x272):'answer_submitted','input':I,'result':aa(0x243)}),L[aa(0x1eb)][u[aa(0x249)]]=I;const N=u[aa(0x249)]+(0xef8+0x2680+-0x3577);return L[aa(0x2a6)]=N<=-0xb*-0x13a+-0x38*-0xad+0x2*-0x1997?N:u[aa(0x249)],K(L),console['log'](),M?(console[aa(0x1f0)](a0j['green'](aa(0x244)+u[aa(0x249)]+'\x20answer\x20updated:\x20')+a0j[aa(0x27b)](I)),console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x24b)+M))):console[aa(0x1f0)](a0j[aa(0x221)][aa(0x255)](aa(0x287)+u[aa(0x249)]+aa(0x278)+I)),console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x213))),console['log'](),console['log'](a0j[aa(0x20f)]('\x20\x20')+a0j['white'](aa(0x215))+a0j[aa(0x20f)](aa(0x290))+a0j['white'](aa(0x2c6))+a0j[aa(0x20f)]('\x20to\x20move\x20on')),N<=0x18f*-0x8+0x1ef7*-0x1+0x1*0x2b97?console[aa(0x1f0)](a0j[aa(0x20f)](aa(0x295))+a0j[aa(0x1e3)](aa(0x288))+a0j['gray'](aa(0x25b)+N)):console['log'](a0j[aa(0x20f)](aa(0x276))+a0j[aa(0x2cb)](aa(0x2c5))),console[aa(0x1f0)](),aa(0x2bd);}if(j[aa(0x28f)]('!')){const O=j[aa(0x22d)](0x825+-0x704+-0x120)[aa(0x1ea)]();if(!O)return aa(0x2bd);try{const P={};P[aa(0x210)]=aa(0x247),P[aa(0x231)]=0x2710;const {execSync:Q}=await import(aa(0x22c)),R=Q(O,P)[aa(0x1ea)]();console[aa(0x1f0)](),console[aa(0x1f0)](a0j[aa(0x20f)]('\x20\x20$\x20')+a0j[aa(0x222)](O)),console[aa(0x1f0)](a0j[aa(0x222)]('\x20\x20'+R[aa(0x1fb)]('\x0a')[aa(0x28d)](aa(0x29d)))),console[aa(0x1f0)]();}catch(S){console[aa(0x1f0)](),console[aa(0x1f0)](a0j[aa(0x1e3)](aa(0x2ba)+(S[aa(0x292)]?.[aa(0x1fb)]('\x0a')[-0x237a+0x1375+-0x557*-0x3]||aa(0x206)))),console['log']();}return aa(0x2bd);}if(aa(0x2c6)===p||'back'===p||'quit'===p||'menu'===p){const T=u[aa(0x249)],{getExamState:U}=await import(aa(0x220)),V=U(),W=V&&null!=V[aa(0x1eb)][T],X=V?.[aa(0x2a6)]||T;return r=!(-0x476+-0x176*-0xf+-0x1*0x1173),i=null,u=null,d[aa(0x2cd)](),console[aa(0x1f0)](),console['log'](a0j[aa(0x20f)](aa(0x224)+T+'.')),W&&-0x1987+0xb95+0x3*0x4b3===T&&X<=0xb*0x1f3+-0xc10+-0x939?console[aa(0x1f0)](a0j['white']('\x20\x20Next:\x20')+a0j['bold'][aa(0x1e3)]('Q40')+a0j[aa(0x20f)](aa(0x24e))+a0j['red'](aa(0x288))+a0j['gray'](aa(0x212))):W&&-0x2c*-0x7c+-0xc*0x1a8+-0x148===T?console[aa(0x1f0)](a0j[aa(0x255)][aa(0x221)](aa(0x29e))+a0j[aa(0x20f)](aa(0x2b4))+a0j[aa(0x2cb)]('exam\x20review')+a0j['gray'](aa(0x21a))+a0j['cyan'](aa(0x2c5))):console['log'](a0j[aa(0x20f)](aa(0x22a))+a0j['white']('exam\x20q\x20'+T)+a0j['gray'](aa(0x2b8))+a0j[aa(0x222)](aa(0x288))),console['log'](),aa(0x2c6);}if(c>=y)return console[aa(0x1f0)](),console[aa(0x1f0)](a0j[aa(0x1e3)]['bold'](aa(0x27e))),console[aa(0x1f0)](a0j['gray']('\x20\x20Still\x20available:\x20')+a0j['white']('submit\x20<flag>')+a0j['gray'](aa(0x21a))+a0j['white'](aa(0x298))+a0j[aa(0x20f)](aa(0x21a))+a0j[aa(0x222)]('exit')),console['log'](),aa(0x2bd);console['log'](a0j[aa(0x20f)](aa(0x239)));try{const Y=await i[aa(0x200)](j);process[aa(0x2be)][aa(0x2b2)](aa(0x240)),c+=Y[aa(0x1ff)];const {getRealExamState:Z,saveExamState:a0}=await import(aa(0x220)),a1=Z(),a2={};a2['ai4ctf']=0x0,a2[aa(0x288)]=0x0,(a1&&(a1[aa(0x271)]||(a1[aa(0x271)]=a2),a1[aa(0x271)][aa(0x288)]=c,a0(a1)),console[aa(0x1f0)](),console['log'](a0j['white'](aa(0x26f))+Y[aa(0x204)]),console[aa(0x1f0)]());const a3=Math[aa(0x226)](c/y*(0x950*-0x4+-0xbc3*-0x1+-0x35*-0x7d));console[aa(0x1f0)](a0j['gray']('\x20\x20['+c+aa(0x262)+a3+'%]')),function(a4,a5){const ab=aa,a6=a4/a5*(-0x3d9*0x4+-0x1704+0x26cc);a6>=0x1e6*-0x3+0x10d1+0x1*-0xac0&&!d[ab(0x1f4)]('95')?(console[ab(0x1f0)](a0j[ab(0x1e3)][ab(0x255)](ab(0x27c)+Math[ab(0x226)](a6)+ab(0x2bc)+(a5-a4)+ab(0x26c))),d[ab(0x2b9)]('95')):a6>=-0x2123*0x1+0x3d9+0x1d9a&&!d[ab(0x1f4)]('80')?(console[ab(0x1f0)](a0j[ab(0x27b)](ab(0x242))),d[ab(0x2b9)]('80')):a6>=-0x369+-0x84f*-0x1+-0x4b4&&!d[ab(0x1f4)]('50')&&(console[ab(0x1f0)](a0j[ab(0x20f)](ab(0x1f9))),d[ab(0x2b9)]('50'));}(c,y),console[aa(0x1f0)]();}catch(a4){process[aa(0x2be)][aa(0x2b2)]('\x1b[1A\x1b[2K'),a0q(aa(0x23a)+a4[aa(0x292)]),console[aa(0x1f0)]();}return aa(0x2bd);}function a0b(){const ah=['Dg9Rzw5ZvxnLza','C2vUze1LC3nHz2u','y3rMngfPuxvPDa','ihbVAw50CYK6cG','y3rMngfPuMvSyxHLza','Dgv4Da','ifn1yM1PDcb0AguGzxH0CMfJDgvKigzSywC','q29TBwfUzcbMywLSzwq','ihrVA2vUC10','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','y3rMngfPswrLyte','icaGigjHy2S','BwLU','nZiWmZC2CNzzrwDO','Dg9mB3DLCKnHC2u','ywK0y3rMtw9KzwW','z3jHEq','zw5JB2rPBMC','icaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGica','ihrVignVBNrPBNvL','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqUkq','y2f0zwDVCNK','C3vIBwL0ieLdt0f7lI4UFq','icbdvey0quKGyxr0ywnRig1VzguGAxmGyxzHAwXHyMXLig9Uigf0DgfJAY10AguTquKGCxvLC3rPB25ZicHUzxH0oIbr','zMLUza','lIbuCNKGywDHAw4U','icaGihjLDhj5','imk3ia','igLZigfUiefjnenurIbXDwvZDgLVBIaOquKGAxmGEw91CIb0zwfTBwf0zsKU','mLvTzezOAa','mZC2ndK5oufxAK5Ayq','icaGicaGicaGicbtCgvJAwzPyYbPBMPLy3rPB24GDgvJAg5PCxvL','sunpqxT5B3vYx2zSywD9','lI4VBgLIl2v4yw0TC3rHDguUANm','z3jLzw4','D2HPDgu','CgfKrw5K','icbdvey0quKGy2HHDcbLBMrLzcbMB3iGuq','icaI','CM91BMq','BwvUDq','ww91igfYzsb0AguGquKGvefsr0vuigLUigfUieLdt0eGmJaYnIbJEwjLCNnLy3vYAxr5igv4yw0UifrOzsbJB250zxn0yw50j3mGAM9IigLZihrVigf0DgfJAYb5B3uGywnJB3jKAw5NihrVihrOzsbZy2vUyxjPBYbIzwXVDY4kcLndru5buKLpicHr','Dg9Rzw4','icbszxn1Bwu6ia','Dg9vChbLCKnHC2u','BM9KztPJAgLSzf9WCM9JzxnZ','C2XPy2u','DhLWzq','BgvUz3rO','E259','DgLTzw91Da','icaGigHPBNqGyq','Aw50zxjHy3rPB25Z','q1rgnefjierLBw8G4OcuifbYB21WDcbPBMPLy3rPB24Gy2HHBgXLBMDL','nZe5nZq1C0jMD29o','BNvTyMvY','mJy4nty5oxHLCfbQBG','CMvWB3j0uMv0CNLxCM9Uz04','icbqCM9IAw5NiefjlI4U','quKGzxjYB3i6ia','xsaGWRCGywr2zxjZyxjPywWGquK','y3rMngfPsgvSza','yxbWBgLJyxrPB24VANnVBG','zxHHBsbHBNn3zxiG','icaGigv4Axq','g1SXqrTBmKS','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','icdIMQaGodaLig9MienurJrbssbIDwrNzxqGDxnLzc4','DMLHign0zJrHAsbJAgf0','icdINjmGuq','CMvWB3j0u3rHz2uX','lZi1mdaWicG','DxrMltG','ChvZAa','Cu51Bq','CMvWB3j0u3rHz2uYsgLUDhm','icaGifbYzxzPB3vZoIa','icbdDxjYzw50igfUC3DLCJOG','y3rMngfPswrLytm','iokaLcb0ExbLia','ohPXtvP6wq','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','y3rMngfPuNvSzq','CMvWzwf0','nMLov1DrrG','icaGigHPBNqGyW','yM9Sza','zxHHBuLK','icbr','y29TBwfUza','icdIMQaGww91CIbdvey0quKGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','icaGigHPBNqGyG','ihDPBgWGB3bLBIbr','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','ywK0y3rM','icaGiezYzwuTzM9YBsbTzxnZywDLCYbNBYb0BYb0AguGquKGDgfYz2v0iokaLcbJCMfMDcb5B3vYihbYB21WDhmGy2fYzwz1BgX5lG','CMvWB3j0uMvHzhK','ww91igfYzsbHihnLy3vYAxr5lwHHCMrLBMvKiefjigfZC2LZDgfUDcbPBIbHienurJrbssbJAgfSBgvUz2uUcGPbqLnptfvursbsvuXfoIbzB3uGBxvZDcborvzfuIbZyxKGDgHLihDVCMqGiMTVywXHiIb1BMrLCIbHBNKGy2LYy3vTC3rHBMnLCY4klsbeBYbUB3qGC2f5icjRB2fSysiGAw4Gyw55igzVCM0SigfUEsbSyw5NDwfNzsWGyw55igvUy29KAw5NlGOTierVig5VDcbZCgvSBcbPDcbVDxqGBgv0DgvYigj5igXLDhrLCI4klsbeBYbUB3qGDxnLihn5BM9UEw1ZihrOyxqGzgLYzwn0BhKGCMvMzxjLBMnLigL0lGOTieLMigfZA2vKigfIB3v0ief1C3rYywXPyw4Gyw5PBwfSCYWGC2TPCcb0Agf0ihnWzwnPzMLJigfUAw1HBc4klsbjzIbHihvZzxiGDhjPzxmGDg8GDhjPy2SGEw91igLUDg8GC2f5Aw5NigL0lcbWB2XPDgvSEsbKzwnSAw5LlGOTiejLigHLBhbMDwWGyw5KignVBNzLCNnHDgLVBMfSigfIB3v0igv2zxj5DgHPBMCGzwXZzs4klsbzB3uGyxjLigf3yxjLihrOAxmGAxmGysbWCM9TChqGAw5Qzwn0Aw9UignOywXSzw5NzsbHBMqGDxnLCNmGD2LSBcb0CNKGDg8GDhjPy2SGEw91lGOkuMvTzw1Izxi6ihLVDxiGAM9IigLZihrVigjLigHLBhbMDwWGD2HPBguGtKvwrviGC2f5Aw5NihrOyxqGzM9YyMLKzgvUihDVCMqU','lZi1mdaWienurJrbssb0B2TLBNmGWRCG','icaGiev4yw0GD2LUzg93ignSB3nLzc4','icdILiiG','CMvWB3j0rgvTBW','cGPzt1vsiejfsefwsu9soGOTiefJDcbLEgfJDgX5igfZihrOzsbZy2vUyxjPBYbKzxnJCMLIzxmUifLVDsbHCMuGyw4Gywr2zxjZyxjPywWGCM9Szs1WBgf5ihbHCNrUzxiUcI0GswyGDgHLihnJzw5HCMLVihnHExmGEw91igHVBgqGysbZzwnYzxqSihLVDsbOB2XKihrOyxqGC2vJCMv0lIbszxnPC3qGzxH0CMfJDgLVBIbHDhrLBxb0CYb1BMXLC3mGDgHLignVBNrLC3rHBNqNCYbWCM9TChqGz2vUDwLUzwX5igrLzMvHDhmGEw91CIbYDwXLCY4klsbeBYbot1qGyNjLywSGy2HHCMfJDgvYigfUzcbHBM5VDw5Jzsb0AguGzMXHzYbKAxjLy3rSEs4klsbeBYbot1qGB3v0Chv0ieLdt0f7lI4UFsbVCIbPy29HEY4UlN0GDw5KzxiGBM9YBwfSihf1zxn0Aw9UAw5NlGOTieLMihrOzsbJB250zxn0yw50ignSzwfYBhKGC29SDMvZihrOzsbJAgfSBgvUz2uGkguUzY4Sigv4zwn1DgvZigeGC3vJy2vZC2z1BcbWCM9TChqGAw5Qzwn0Aw9UksWGEw91ig1HEsbYzxzLywWGAw5MB3jTyxrPB24GCgvYihrOzsbZy2vUyxjPBYDZihj1BgvZlGOTiejLigHLBhbMDwWGD2HLCMuGDgHLihnJzw5HCMLVigfSBg93CYWGAg9ZDgLSzsb3AgvYzsbPDcbYzxf1AxjLCY4klsblzwvWihjLC3bVBNnLCYbZAg9YDcbHBMqGAw4Ty2HHCMfJDgvYlG','AgLUDcbJ','z2vTAw5Ptw9KzwW','CMvWB3j0uMvJmq','oIbhB29NBguGr2vTBweGncaO','y3rMngfPqwXYzwfKEq','ihrVA2vUCYbSzwz0lG','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILjG','DgvZDa','icbbstOG','y3rMngfPrgvMzw5Zzq','ywLvC2fNzq','yw5ZD2vYx2nOyw5Nzwq','C3rHDhvZ','CMvWB3j0uMv0CNLdDge','yMfJAW','icbbzNrLCIbLEgL0oIbHBgWGndaGyw5ZD2vYzwqG4OAsia','CMvWB3j0uMvJmG','ihjLy29YzgvKoIa','mZiXmdKYAhzMCLfT','y3rMngfPsw50CM8X','EwvSBg93','icdIMQaG','icbJDgy0ywK+ia','icdIMQaGq1rgnefjihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','AgLUDcbI','Bwf0y2G','rMfPBgvKihrVihn0yxj0ienurJrbstOG','DgHLB3j5rg9Uzti','C3vIBwL0ia','icaGig1LBNu','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','CMvWB3j0u3rHz2uYu3vI','icdINjmGqw5ZD2vYigzVCIbr','y3rMngfP','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','DgHLB3j5rg9Uzq','icaGia','AM9PBG','CMv0CNK','C3rHCNrZv2L0Aa','igfNywLUihrVignOyw5NzsWGB3iG','CMvWB3j0rxHHBvnLDhvWsgLUDa','BwvZC2fNzq','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILja','icbbzNrLCIbLEgL0oIa','iokvKokvKokvKa','icaGigv4yw0GC2v0Dxa','ixnOzwXS','y3rMngfPvgHPBMTPBMC','icbvC2u6ia','y3rMngfPrw5Kzwq','y2f0y2G','cIaG','icbbBgWGndaGyw5ZD2vYzwqHia','icbdvey0quKGC2vJDgLVBJOG','y3rMngfPswrLyxm','icdILii','AgLUDa','CxvLC3rPB24','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','icbgBgfNigzVCM1HDdOG','x2XHC3rr','y3rMngvHAq','Dg9Rzw5mAw1PDa','y3rMngfPswrLytq','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','z2vTBweTnc0ZmwiTAxq','icdWN5kQia','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','CMvWBgfJzq','ue9tva','nty5mJGWmgjPtunrwq','D3jPDgu','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','uMv2Awv3icSGC3vIBwL0oIa','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3ic0GsNvSidi','Dg9ju09tDhjPBMC','CMvWB3j0qwjVDxriAw50','icdcTYaGuMuTzw50zxi6ia','ywrK','icbfCNjVCJOG','icaGieHPBNqGyNvKz2v0igv4Agf1C3rLzcbMB3iGBgv2zwWG','jsbVzIbdvey0quKGyNvKz2v0ihvZzwqG4Ocuig9UBhKGFG','y29UDgLUDwu','C3rKB3v0','icdcTYa','icaGicaGicaGicbcCMvHA3rOCM91z2GGDgfJDgLJ','C3rYAw5NAwz5','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icaGicaGia','y3rMngfPvgL0Bgu','zxHHBsbZDwjTAxq','zxHPDa','icaGicfWExrOB24Zic4UlG','y3rMngfPq2HHBgXLBMDL','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','zxHHBsbXia','y3LHBG','C2vZC2LVBG','y2XLyxi','CMvWB3j0tM90u29SDMvK','CMvWB3j0rxHWzxjPzw5Jzwq','icbB','CMvWB3j0vgL0Bgu','CMvK','y3rMngfPtwLZC2LVBG','icaG','CMvWB3j0q29TCgXLDgvK','CMvWB3j0uMvJB21Tzw5K','icaGigfIB3v0','y3rMngfPswrLyti','DhjPBq','yw5ZD2vYCW','C29Tzq','ywn0Aw9U','lI4U','CMvWB3j0uMv0CNLxCM9Uz05qBhvYywW','Bg9N','ihb0CYKG4Pwq4Pwq4Pwq','y3rMngfPsw5Qzwn0Aw9U','icaGifn0DwnRpYbuCNK6ia','AgfZ','icaGicaGica','icdILRGGsgLUDca','DMXH','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','icboB3rLoIa1mcuGB2yGq1rgnefjigj1zgDLDcb1C2vKlG','icbiB3CGDg8Gyxr0ywnRihrOAxmGDgfYz2v0','C3bSAxq','y3rMngfPuhjVBxb0','icaGienVDwXKig5VDcbYzwfJAcbOAw50ihnLCNzLCI4Gq2HLy2SGEw91CIbJB25Uzwn0Aw9UlG','mteXmJqXohnjz011zG'];a0b=function(){return ah;};return a0b();}export function registerCtf4aiDemoCommand(b){const ac=a0f;b[ac(0x258)]('ctf4ai')['description'](ac(0x234))[ac(0x1ed)](async()=>{const ad=ac;a0p('ctf4ai');const {getRealExamState:f}=await import(ad(0x220)),h=f(),j=h?.['questions'][ad(0x1ec)](p=>'ctf4ai'===p['type']);if(h&&j){const p=h['_lastQ']||0x1d05+0x797+0x249b*-0x1,q=h['questions'][ad(0x217)](v=>v[ad(0x236)]===p);if(!q)return void a0q('Q'+p+ad(0x25d)+p);if(ad(0x288)!==q[ad(0x22e)]){if(console[ad(0x1f0)](),ad(0x25e)===q[ad(0x22e)])console['log'](a0j[ad(0x27b)](ad(0x257)+p+ad(0x21b))),console['log'](a0j['gray'](ad(0x29a))+a0j[ad(0x255)][ad(0x221)]('ai4ctf'));else{if(ad(0x1f7)===q[ad(0x22e)])console[ad(0x1f0)](a0j['yellow'](ad(0x257)+p+ad(0x250))),console[ad(0x1f0)](a0j['gray'](ad(0x29a))+a0j[ad(0x255)][ad(0x2cb)](ad(0x2a7)));else{const v=h['questions'][ad(0x217)](w=>ad(0x288)===w[ad(0x22e)]);console[ad(0x1f0)](a0j[ad(0x27b)](ad(0x257)+p+'\x20is\x20a\x20multiple-choice\x20question\x20—\x20answer\x20with\x20A/B/C/D.')),v&&(console['log'](a0j['gray'](ad(0x216)+v['number']+').')),console['log'](a0j['gray']('\x20\x20Jump\x20there:\x20')+a0j['bold'][ad(0x2cb)](ad(0x2ca)+v[ad(0x236)])));}}return void console['log']();}return void await async function(w,x){const ae=ad,{getRealExamState:z}=await import(ae(0x220)),A=z();if(!A)return!(-0x3*-0x84f+-0x1*0x4db+-0xb*0x1d3);const B=A['aiUsage']?.[ae(0x288)]??-0x2538+0x284*0xb+-0x263*-0x4;if(B>=y)return console[ae(0x1f0)](),console[ae(0x1f0)](a0j[ae(0x27b)](ae(0x259))),console[ae(0x1f0)](a0j['gray']('\x20\x20Submit\x20directly:\x20')+a0j[ae(0x222)](ae(0x23e)+w+'\x20ICOA{...}')),console[ae(0x1f0)](),!(0x3*-0xa7f+0x1*0x533+0x35*0x7f);try{i=await a0k(void(0x22d0+-0x2*-0xb6+-0x243c),function(E,F){const af=ae;return af(0x228)+F+',\x20'+E[af(0x214)]+',\x20'+(E['points']||-0x6b5+0xa*-0x396+0x7*0x617)+af(0x202)+E[af(0x204)]+af(0x266);}(x,w));}catch(E){return a0q(E[ae(0x292)]),!(-0xbe7+0x25cf*0x1+0x1*-0x19e7);}const C={};C[ae(0x249)]=w,C['question']=x,(r=!(-0x121a+0xf39+-0xb*-0x43),c=B,u=C);const D=A[ae(0x1eb)]?.[w];return function(F,G,H){const ag=ae,I=a0v()[ag(0x268)]||ag(0x2ab),J=c>-0x27c+-0x2ef*0x9+0x1ce3;console['log'](),console[ag(0x1f0)](a0j[ag(0x1e3)]['bold']('\x20\x20═══\x20CTF4AI\x20—\x20Q'+G+':\x20'+F[ag(0x214)]+'\x20('+(F['points']||0x1760+-0x6d*0x2e+0x9*-0x6a)+ag(0x1f1))),J&&console['log'](a0j[ag(0x20f)](ag(0x25c))),H&&console[ag(0x1f0)](a0j[ag(0x20f)](ag(0x24c))+a0j[ag(0x27b)](H)+a0j[ag(0x20f)]('\x20\x20(submit\x20again\x20to\x20change)')),console[ag(0x1f0)](),console[ag(0x1f0)](a0j['red']('\x20\x20┌─────────────────────────────────────────────')),console[ag(0x1f0)](a0j['red'](ag(0x264))+a0j[ag(0x255)]['white']('Q'+G+'\x20\x20['+F['category']+ag(0x23b))),console[ag(0x1f0)](a0j[ag(0x1e3)](ag(0x2a1)));for(const P of String(F[ag(0x204)])['split']('\x0a')){const Q=P[ag(0x22f)]>0x2*-0xa1b+-0x13*0x152+0x2d88?P[ag(0x22d)](-0xda*0xa+0x25*0xde+0x35e*-0x7,-0x396*0x8+-0x1bc6+0x38af)+ag(0x1ee):P;console[ag(0x1f0)](a0j['red'](ag(0x264))+a0j[ag(0x222)](Q));}console['log'](a0j['red']('\x20\x20│')),console['log'](a0j[ag(0x1e3)]('\x20\x20│\x20')+a0j[ag(0x20f)]('Full\x20question:\x20\x20')+a0j[ag(0x222)]('exam\x20q\x20'+G)),console['log'](a0j['red']('\x20\x20│\x20')+a0j[ag(0x20f)](ag(0x1f8))),console['log'](a0j[ag(0x1e3)](ag(0x2b3))),console[ag(0x1f0)](),console[ag(0x1f0)](a0j[ag(0x255)][ag(0x222)](ag(0x1fa))),console[ag(0x1f0)](),console['log'](a0j['yellow'](ag(0x232))+a0j[ag(0x20f)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Attack\x20surface\x20nudge\x20(pre-written)')),console[ag(0x1f0)](a0j[ag(0x27b)](ag(0x25a))+a0j[ag(0x20f)](ag(0x21e))),console['log'](a0j[ag(0x27b)](ag(0x254))+a0j[ag(0x20f)](ag(0x2c0))),console[ag(0x1f0)](a0j['white']('\x20\x20\x20\x20submit\x20ICOA{...}')+a0j[ag(0x20f)](ag(0x205))),console[ag(0x1f0)](a0j[ag(0x222)](ag(0x2c7))+a0j[ag(0x20f)](ag(0x2c9))),console['log'](a0j[ag(0x20f)](ag(0x25f))),console[ag(0x1f0)](),console[ag(0x1f0)](a0j[ag(0x20f)](ag(0x23f))+a0j['gray'](ag(0x2ad))),console[ag(0x1f0)](a0j[ag(0x20f)](ag(0x284))+a0j[ag(0x20f)](ag(0x2aa))),console[ag(0x1f0)]();const K=c,L=Math[ag(0x20b)](Math['round'](K/(-0x1*0x6f67+-0x82ff+-0x1*-0x1540e)*(0x4*0x5fb+-0x23bb*-0x1+-0x3b43)),-0xa90+-0x2ed*-0x1+0x807),M=Math[ag(0x226)](L/(-0x58d+-0xcef+0x4*0x4b8)*(-0x20af+0x21a2+0x1*-0xdf)),N=-0x22c9+-0x1129+0x3406-M,O=L>-0x1*0xa1c+-0x8da+-0x1*-0x1346?a0j['red']:L>0x1ab7*-0x1+0x1b24+0x3b*-0x1?a0j[ag(0x27b)]:a0j[ag(0x221)];console[ag(0x1f0)](a0j['gray'](ag(0x29f))+O('█'['repeat'](M))+a0j[ag(0x20f)]('░'[ag(0x252)](N))+a0j[ag(0x20f)]('\x20'+K+ag(0x246)+L+'%)')),console[ag(0x1f0)](a0j[ag(0x20f)](ag(0x2a4)+I+')')),console[ag(0x1f0)]();}(x,w,D),!(-0x28b*-0x7+-0xcca+-0x1*0x503);}(p,q);}if(r)return void console[ad(0x1f0)](a0j['gray']('\x20\x20'+a0x(ad(0x26b))));const k=a0v()['geminiModel']||ad(0x2ab);console['log'](),console[ad(0x1f0)](a0j[ad(0x1e3)][ad(0x255)]('\x20\x20═══\x20'+a0x(ad(0x2c4))+ad(0x296))),console['log'](),console[ad(0x1f0)](a0j[ad(0x222)]('\x20\x20'+a0x(ad(0x2c8)))),console[ad(0x1f0)](),console[ad(0x1f0)](a0j[ad(0x20f)]('\x20\x20'+a0x(ad(0x27a)))),console['log'](a0j['gray']('\x20\x20'+a0x('ctf4aiIntro2'))),console[ad(0x1f0)](),console['log'](a0j[ad(0x20f)](ad(0x294))),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x222)](('\x20\x20'+a0x(ad(0x251)))['padEnd'](0xd37+0x2*0x32f+-0x1*0x1363))+a0j['gray']('│')),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x222)](('\x20\x20'+a0x(ad(0x1e4)))['padEnd'](-0x6c3*-0x1+0x4a*-0x5b+0xa3*0x1f))+a0j['gray']('│')),console['log'](a0j['gray'](ad(0x2a1))+a0j[ad(0x222)](ad(0x211))+a0j[ad(0x20f)]('│')),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x27b)](('\x20\x20'+a0x(ad(0x2a0)))[ad(0x223)](-0x5*-0x17b+0xca*0x27+-0x25fb))+a0j[ad(0x20f)]('│')),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x20f)](('\x20\x20·\x20'+a0x(ad(0x209)))['padEnd'](-0x2bd*-0x1+-0x1*0x607+0x37c))+a0j[ad(0x20f)]('│')),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x20f)]((ad(0x2bf)+a0x(ad(0x1e9)))[ad(0x223)](-0x4*-0x6e8+-0xf0e*0x1+-0xc60))+a0j[ad(0x20f)]('│')),console['log'](a0j[ad(0x20f)](ad(0x2a1))+a0j[ad(0x20f)]((ad(0x2bf)+a0x(ad(0x24d)))[ad(0x223)](-0xded+0x20a2*-0x1+-0x2ec1*-0x1))+a0j[ad(0x20f)]('│')),console[ad(0x1f0)](a0j[ad(0x20f)](ad(0x2a1))+a0j['gray']((ad(0x2bf)+a0x(ad(0x2a9)))[ad(0x223)](0x1bc8+0x11*0x20b+-0x7*0x8e7))+a0j[ad(0x20f)]('│')),console[ad(0x1f0)](a0j['gray'](ad(0x26d))),console[ad(0x1f0)](),console[ad(0x1f0)](a0j[ad(0x20f)]('\x20\x20'+a0x('ctf4aiBudget')+':\x20~'+Math[ad(0x226)](g/(0x1af1+0x49*-0x81+0x4*0x277))+'\x20words\x20('+g+'\x20tokens)')),console[ad(0x1f0)](a0j['gray']('\x20\x20'+a0x(ad(0x203)))),console[ad(0x1f0)](a0j[ad(0x20f)]('\x20\x20'+a0x(ad(0x20e))+ad(0x26a)+k+')')),console[ad(0x1f0)](a0j[ad(0x20f)]('\x20\x20'+a0x(ad(0x201)))),console[ad(0x1f0)]();try{i=await a0k(void(0x1*-0x551+0x282+0x2cf),ad(0x261)),r=!(0x235f+-0xd*0x15+-0x224e),c=0x1403+-0x1dee+0x9eb*0x1,console[ad(0x1f0)](a0j[ad(0x1e3)](ad(0x27d))+a0j[ad(0x20f)](''+a0x(ad(0x1fc)))),console['log']();}catch(w){a0q(ad(0x281)+w['message']);}});}
|
|
1
|
+
(function(b,f){const a7=a0f,h=b();while(!![]){try{const j=parseInt(a7(0x256))/(-0x13f9*0x1+0x3*0xaee+-0xcd0)+parseInt(a7(0x1d3))/(0x216b+-0x1*-0x1edd+-0x4046)+-parseInt(a7(0x213))/(0x114b+-0x761*0x2+-0x286)+parseInt(a7(0x1c5))/(0xa3*-0x29+-0x21b6+0x3bd5)+-parseInt(a7(0x1ca))/(-0x3*0xaed+-0x830+-0x56*-0x7a)*(parseInt(a7(0x200))/(-0x269*0xf+0x1c69+0x7c4))+-parseInt(a7(0x251))/(-0x31f+-0x2447*0x1+0x276d*0x1)+parseInt(a7(0x1c4))/(-0x1*-0x1d75+0x1ec3*-0x1+-0x39*-0x6);if(j===f)break;else h['push'](h['shift']());}catch(k){h['push'](h['shift']());}}}(a0b,0x17*0x46fd+0x900d2+-0x83677));import a0j from'chalk';import{createChatSession as a0k}from'../lib/gemini.js';import{logCommand as a0p}from'../lib/logger.js';import{printError as a0q}from'../lib/ui.js';import{getConfig as a0v}from'../lib/config.js';function a0b(){const ah=['C3rHCNrZv2L0Aa','AgLUDa','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','ywK0y3rMtw9KzwW','yw5ZD2vYCW','iokaLcb0ExbLia','C3rYAw5NAwz5','oIbhB29NBguGr2vTBweGncaO','icaGigHPBNqGyq','icdIMQaGodaLig9MienurJrbssbIDwrNzxqGDxnLzc4','igLZigfUiefjnenurIbXDwvZDgLVBIaOquKGAxmGEw91CIb0zwfTBwf0zsKU','DgvZDa','CMvWB3j0uMvHzhK','y3rMngfPqNvKz2v0','y3rMngfP','CMvWB3j0qwjVDxriAw50','yxbWBgLJyxrPB24VANnVBG','icdIMQaGww91CIbdvey0quKGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','icbdvey0quKGC2vJDgLVBJOG','icbqCM9IAw5NiefjlI4U','zxHPDa','zxHHBsbZDwjTAxq','icaG','nty3mZiYngDhDwr3sW','mJi4mdq3nKrWDwjQyW','z2vTBweTnc0ZmwiTAxq','igfNywLUihrVignOyw5NzsWGB3iG','icdIMQaGq1rgnefjihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','y3rMngfPswrLytm','mtmZnZK1wMHwDMHS','EwvSBg93','icbbBgWGndaGyw5ZD2vYzwqHia','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','yMfJAW','ixnOzwXS','Cu51Bq','icdILzdILzdILzaGq1rgnefjiokaLcbr','rMfPBgvKihrVihn0yxj0ienurJrbstOG','mta2mdGWnMf4ExbkCq','Dgv4Da','icbbzNrLCIbLEgL0oIbHBgWGndaGyw5ZD2vYzwqG4OAsia','CgfKrw5K','q1rgnefjierLBw8G4OcuifbYB21WDcbPBMPLy3rPB24Gy2HHBgXLBMDL','C3vIBwL0ieLdt0f7lI4UFq','CMvWB3j0rgvTBW','y3rMngfPsw50CM8Y','zMLUza','z3jLzw4','icdILii','DgLTzw91Da','y29TBwfUza','y3rMngfPsw5Qzwn0Aw9U','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','zxHHBuLK','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','CxvLC3rPB25Z','Bwf0y2G','icbbstOG','CMvWB3j0tM90u29SDMvK','D2HPDgu','CMvWB3j0rxHHBvnLDhvWsgLUDa','CM91BMq','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILja','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','icdINjmGqw5ZD2vYigzVCIbr','y3rMngfPswrLyte','jsbVzIbdvey0quKGyNvKz2v0ihvZzwqG4Ocuig9UBhKGFG','AgfZ','D3jPDgu','ue9tva','icaGieHPBNqGyNvKz2v0igv4Agf1C3rLzcbMB3iGBgv2zwWG','CxvPDa','CMvWB3j0qMfJA0HPBNq','icaGienVDwXKig5VDcbYzwfJAcbOAw50ihnLCNzLCI4Gq2HLy2SGEw91CIbJB25Uzwn0Aw9UlG','CMvWzwf0','ww91igfYzsb0AguGquKGvefsr0vuigLUigfUieLdt0eGmJaYnIbJEwjLCNnLy3vYAxr5igv4yw0UifrOzsbJB250zxn0yw50j3mGAM9IigLZihrVigf0DgfJAYb5B3uGywnJB3jKAw5NihrVihrOzsbZy2vUyxjPBYbIzwXVDY4kcLndru5buKLpicHr','Dg9vChbLCKnHC2u','icbJDgy0ywK+ia','ywn0Aw9U','icaGigv4Axq','y3rMngfPswrLyti','icbbzNrLCIbLEgL0oIa','iokvKokvKokvKa','mtG2y2H3zujg','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ihbVAw50CYK6cG','DgHLB3j5rg9Uzq','icaGihn1yM1PDcbjq09bEY4UlN0','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','rNvSBcbXDwvZDgLVBJOGia','CxvLC3rPB24','C3rKB3v0','ww91igfYzsbHihnLy3vYAxr5lwHHCMrLBMvKiefjigfZC2LZDgfUDcbPBIbHienurJrbssbJAgfSBgvUz2uUcGPbqLnptfvursbsvuXfoIbzB3uGBxvZDcborvzfuIbZyxKGDgHLihDVCMqGiMTVywXHiIb1BMrLCIbHBNKGy2LYy3vTC3rHBMnLCY4klsbeBYbUB3qGC2f5icjRB2fSysiGAw4Gyw55igzVCM0SigfUEsbSyw5NDwfNzsWGyw55igvUy29KAw5NlGOTierVig5VDcbZCgvSBcbPDcbVDxqGBgv0DgvYigj5igXLDhrLCI4klsbeBYbUB3qGDxnLihn5BM9UEw1ZihrOyxqGzgLYzwn0BhKGCMvMzxjLBMnLigL0lGOTieLMigfZA2vKigfIB3v0ief1C3rYywXPyw4Gyw5PBwfSCYWGC2TPCcb0Agf0ihnWzwnPzMLJigfUAw1HBc4klsbjzIbHihvZzxiGDhjPzxmGDg8GDhjPy2SGEw91igLUDg8GC2f5Aw5NigL0lcbWB2XPDgvSEsbKzwnSAw5LlGOTiejLigHLBhbMDwWGyw5KignVBNzLCNnHDgLVBMfSigfIB3v0igv2zxj5DgHPBMCGzwXZzs4klsbzB3uGyxjLigf3yxjLihrOAxmGAxmGysbWCM9TChqGAw5Qzwn0Aw9UignOywXSzw5NzsbHBMqGDxnLCNmGD2LSBcb0CNKGDg8GDhjPy2SGEw91lGOkuMvTzw1Izxi6ihLVDxiGAM9IigLZihrVigjLigHLBhbMDwWGD2HPBguGtKvwrviGC2f5Aw5NihrOyxqGzM9YyMLKzgvUihDVCMqU','icaGicaGia','ywrK','igLZigeGBxvSDgLWBguTy2HVAwnLihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0Acbbl0iVqY9elG','zxHHBsbYzxzPzxC','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILjG','zxHHBsbXia','icbdvey0quKGyxr0ywnRig1VzguGAxmGyxzHAwXHyMXLig9Uigf0DgfJAY10AguTquKGCxvLC3rPB25ZicHUzxH0oIbr','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','CMvWB3j0u3rHz2uY','nda2otaYDKL0uLf2','y3rMngfPuhjVBxb0','icaGigv4yw0GC2v0Dxa','icaGicaGicaGicbcCMvHA3rOCM91z2GGDgfJDgLJ','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqUkq','zgvZy3jPChrPB24','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','CMvWB3j0uMv0CNLdDge','ieLdt0f7lI4UFq','icaGig1LBNu','icaGifn0DwnRpYbuCNK6ia','icdcTYa','CMvWBgfJzq','icdILRGGsgLUDca','CMvWB3j0uMvJmq','ifn1yM1PDcb0AguGzxH0CMfJDgvKigzSywC','icaGigfIB3v0','y3rMngfPswrLyxm','C2XPy2u','y3rMngfPuNvSzq','icbvC2u6ia','icaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGica','Dg9ju09tDhjPBMC','BM9KztPJAgLSzf9WCM9JzxnZ','C3rHDhvZ','C3bSAxq','BwvUDq','icaGiezYzwuTzM9YBsbTzxnZywDLCYbNBYb0BYb0AguGquKGDgfYz2v0iokaLcbJCMfMDcb5B3vYihbYB21WDhmGy2fYzwz1BgX5lG','y3rMngfPuxvPDa','g1SXqrTBmKS','z2vTAw5Ptw9KzwW','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','AgLUDcbJ','sunpqxT5B3vYx2zSywD9','Dg9Rzw4','ihrVA2vUCYK','imk3ia','icbr','BwvZC2fNzq','y3rMngfPtwLZC2LVBG','icaKia','y3rMngfPrw5Kzwq','icbdvey0quKGy2HHDcbLBMrLzcbMB3iGuq','y2f0y2G','yw5ZD2vYx2nOyw5Nzwq','AM9PBG','utqW','CMvK','ywK0y3rM','CMvWB3j0uMvJmW','icaGia','icaGiev4yw0GD2LUzg93ignSB3nLzc4','icbgBgfNigzVCM1HDdOG','icaGigHPBNqGyW','CMvWB3j0q29TCgXLDgvK','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','icdIMQaG','ywLvC2fNzq','DhjPBq','y3rMngfPqwXYzwfKEq','BNvTyMvY','mZu3mtq1nMvUAfrQrW','uMv2Awv3icSGC3vIBwL0oIa','icaGigHPBNqGyG','y2XLyxi','Cg9PBNrZ','mtm1ndC4uuTLy2Dp','C29Tzq','icbB','icaGigrLBw8','y3rMngfPq2HHBgXLBMDL','AgLUDcbI','z3jHEq','ihDPBgWGB3bLBIbr','lIbuCNKGywDHAw4U','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','BgvUz3rO','y3rMngfPvgL0Bgu','icbozxH0oIa','y3rMngfPsgvSza','lZi1mdaWicG','cGPzt1vsiejfsefwsu9soGOTiefJDcbLEgfJDgX5igfZihrOzsbZy2vUyxjPBYbKzxnJCMLIzxmUifLVDsbHCMuGyw4Gywr2zxjZyxjPywWGCM9Szs1WBgf5ihbHCNrUzxiUcI0GswyGDgHLihnJzw5HCMLVihnHExmGEw91igHVBgqGysbZzwnYzxqSihLVDsbOB2XKihrOyxqGC2vJCMv0lIbszxnPC3qGzxH0CMfJDgLVBIbHDhrLBxb0CYb1BMXLC3mGDgHLignVBNrLC3rHBNqNCYbWCM9TChqGz2vUDwLUzwX5igrLzMvHDhmGEw91CIbYDwXLCY4klsbeBYbot1qGyNjLywSGy2HHCMfJDgvYigfUzcbHBM5VDw5Jzsb0AguGzMXHzYbKAxjLy3rSEs4klsbeBYbot1qGB3v0Chv0ieLdt0f7lI4UFsbVCIbPy29HEY4UlN0GDw5KzxiGBM9YBwfSihf1zxn0Aw9UAw5NlGOTieLMihrOzsbJB250zxn0yw50ignSzwfYBhKGC29SDMvZihrOzsbJAgfSBgvUz2uGkguUzY4Sigv4zwn1DgvZigeGC3vJy2vZC2z1BcbWCM9TChqGAw5Qzwn0Aw9UksWGEw91ig1HEsbYzxzLywWGAw5MB3jTyxrPB24GCgvYihrOzsbZy2vUyxjPBYDZihj1BgvZlGOTiejLigHLBhbMDwWGD2HLCMuGDgHLihnJzw5HCMLVigfSBg93CYWGAg9ZDgLSzsb3AgvYzsbPDcbYzxf1AxjLCY4klsblzwvWihjLC3bVBNnLCYbZAg9YDcbHBMqGAw4Ty2HHCMfJDgvYlG','Bg9N','icdILzdILzdILzaG','Aw50zxjHy3rPB25Z','oIb+','igLZigfUievTyM9KAwvKiefjicHfquKPihf1zxn0Aw9UlG','y3rMngfPsw50CM8X','DhLWzq','Dg9Rzw5mAw1PDa','y29UDgLUDwu','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','lI4VBgLIl2v4yw0TC3rHDguUANm','icaGicaGica','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','CMv0CNK','C2vUze1LC3nHz2u','C2vZC2LVBG','icaGihjLDhj5','CMvWB3j0u3rHz2uX','y3LHBG','CMvWB3j0u3rHz2uYu3vI','yM9Sza','ihDVCMrZicG','quKGzxjYB3i6ia','icdILiiG','Dw5KzxjSAw5L','icbtDwjTAxqGzgLYzwn0BhK6ia','icbszxn1Bwu6ia','x2XHC3rr','y2f0zwDVCNK','icbfCNjVCJOG','icdINjmGuq'];a0b=function(){return ah;};return a0b();}import{getRetryQueue as a0w}from'../lib/demo-stats.js';import{t as a0x}from'../lib/i18n.js';function s(b,f){const a8=a0f,h=a0v()[a8(0x232)]||a8(0x1c6),j=a0w(),k=!!(j&&j[a8(0x261)]>-0x131b+0x1323+-0x8);if(console[a8(0x267)](),console[a8(0x267)](a0j[a8(0x279)]('\x20\x20═══════════════════════════════════════════════')),console[a8(0x267)](a0j[a8(0x27b)][a8(0x1e8)](a8(0x1c3)+a0x('reportTitle'))),console[a8(0x267)](a0j[a8(0x279)](a8(0x1cd))),console['log'](),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20'+a0x(a8(0x278)))),console['log'](a0j['green'](a8(0x246)+a0x(a8(0x24a)))),console[a8(0x267)](),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20'+a0x(a8(0x212)))),console['log'](a0j[a8(0x1dc)]('\x20\x20\x20\x20'+a0x('reportExperienced'))),console[a8(0x267)](a0j['gray']('\x20\x20\x20\x20'+a0x(a8(0x27a)))),console[a8(0x267)](a0j[a8(0x25c)](a8(0x246)+a0x('reportStage2Hints'))),console['log'](),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20'+a0x('reportStage3'))),b?console[a8(0x267)](a0j[a8(0x1dc)](a8(0x246)+a0x('reportSolved'))):console['log'](a0j[a8(0x1cb)]('\x20\x20\x20\x20'+a0x(a8(0x1e7)))),console[a8(0x267)](a0j[a8(0x25c)](a8(0x246)+a0x('ai4ctfTokens')+':\x20'+f+'/'+g)),console[a8(0x267)](),console[a8(0x267)](a0j[a8(0x279)](a8(0x25f))),console['log'](),console[a8(0x267)](a0j[a8(0x27b)][a8(0x1e8)]('\x20\x20'+a0x('reportRecommend'))),console[a8(0x267)](a0j[a8(0x25c)](a8(0x21f)+a0x(a8(0x222)))),console[a8(0x267)](a0j['gray'](a8(0x21f)+a0x('reportRec2'))),console[a8(0x267)](a0j['gray'](a8(0x21f)+a0x(a8(0x245)))),console['log'](a0j['gray'](a8(0x21f)+a0x('reportRec4'))),console[a8(0x267)](),console[a8(0x267)](a0j['gray']('\x20\x20'+a0x(a8(0x289))+a8(0x28d)+h+')')),console[a8(0x267)](),console[a8(0x267)](a0j['cyan']('\x20\x20─────────────────────────────────────────────')),console[a8(0x267)](),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20'+a0x(a8(0x203)))),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20'+a0x('theoryDone2'))),console[a8(0x267)](),k&&(console[a8(0x267)](a0j['white']('\x20\x20💪\x20'+a0x(a8(0x21b))+'\x20')+a0j[a8(0x27b)]['cyan'](a8(0x274))),console[a8(0x267)]()),console[a8(0x267)](a0j[a8(0x279)](a8(0x25f))),console['log'](a0j[a8(0x1e8)]('\x20\x20'+a0x(a8(0x292)))),k){const p=j['length'],q=a0x(0x1755+-0x26f+-0x14e5===p?'reportRetryWrongN':'reportRetryWrongNPlural');console['log'](a0j['cyan'](a8(0x277))+a0j[a8(0x25c)](a8(0x20a)+q[a8(0x220)]('{n}',String(p))));}console[a8(0x267)](a0j['cyan'](a8(0x215))+a0j[a8(0x25c)]('\x20\x20'+a0x(a8(0x1e9)))),console[a8(0x267)](a0j[a8(0x1e8)]('\x20\x20\x20\x20back')+a0j['gray']('\x20\x20\x20\x20\x20\x20\x20\x20'+a0x(a8(0x1f5)))),console[a8(0x267)](a0j['white'](a8(0x259))+a0j[a8(0x25c)](a8(0x272)+a0x(a8(0x1d9)))),console[a8(0x267)](a0j[a8(0x1e8)](a8(0x224))+a0j[a8(0x25c)](a8(0x20a)+a0x(a8(0x295)))),console[a8(0x267)](),console['log'](a0j[a8(0x1cb)]('\x20\x20ICOA\x202026\x20·\x20Sydney,\x20Australia\x20·\x20Jun\x2027\x20-\x20Jul\x202')),console[a8(0x267)](a0j[a8(0x279)][a8(0x27f)]('\x20\x20https://icoa2026.au')),console[a8(0x267)]();}let r=!(-0x24a9+0x1*0xb16+-0x1994*-0x1),i=null,c=-0x2189+-0x1*-0x13a2+0xde7;function a0f(a,b){a=a-(0x1*-0x1cc9+0x4*-0x5b5+-0xf4*-0x38);const c=a0b();let d=c[a];if(a0f['TBHDvc']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x131b+0x1323+-0x8,o,p,q=0x1755+-0x26f+-0x14e6;p=i['charAt'](q++);~p&&(o=n%(-0x24a9+0x1*0xb16+-0x1997*-0x1)?o*(-0x2189+-0x1*-0x13a2+0xe27)+p:p,n++%(-0x1bb1*0x1+0xe17+0xd9e))?l+=String['fromCharCode'](-0x53*0x1d+0x1387*-0x2+-0x83e*-0x6&o>>(-(0xe*0xde+-0x1f7*0x13+-0x1*-0x1933)*n&-0x7*0x27d+0x1*-0x249b+0x360c)):0xa*-0x12+-0x16b6+0x9*0x29a){p=j['indexOf'](p);}for(let r=0xa*0x83+-0x1*0xaa4+0x586,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x3*-0xacd+0x3c7*0x3+0x1522))['slice'](-(0x13a3+-0x139*0xa+0x767*-0x1));}return decodeURIComponent(m);};a0f['UOIYLu']=e,a0f['NpwSJe']={},a0f['TBHDvc']=!![];}const f=c[0x16c8+0x165a+-0x2*0x1691],g=a+f,h=a0f['NpwSJe'][g];return!h?(d=a0f['UOIYLu'](d),a0f['NpwSJe'][g]=d):d=h,d;}const g=-0x1bb1*0x1+0xe17+0x1952,y=-0xbf*0x3f+0x547*-0x25+-0x11e4*-0x13;let u=null;export function isCtf4aiActive(){return r;}export async function handleCtf4aiMessage(f){const a9=a0f;if(!i)return a9(0x29a);if(a0p('ctf4ai:\x20'+f),u)return m(f);const h={};h['Content-Type']='application/json';if(a9(0x29a)===f||'back'===f||'quit'===f||a9(0x22e)===f)return r=!(0xe*0xde+-0x1f7*0x13+-0x19*-0x102),i=null,fetch(a9(0x288),{'method':a9(0x1f2),'headers':h,'body':JSON['stringify']({'type':'ctf4ai','solved':!(-0x7*0x27d+0x1*-0x249b+0x3607),'tokensUsed':c,'timestamp':new Date()[a9(0x22a)]()}),'signal':AbortSignal[a9(0x1de)](0xa*-0x12+-0x16b6+0x2*0x1579)})[a9(0x23f)](()=>{}),console[a9(0x267)](),console['log'](a0j[a9(0x25c)]('\x20\x20'+a0x(a9(0x23d)))),s(!(0xa*0x83+-0x1*0xaa4+0x587),c),a9(0x29a);if(c>=g)return console['log'](),console[a9(0x267)](a0j[a9(0x1cb)]('\x20\x20'+a0x(a9(0x26e)))),console[a9(0x267)](a0j[a9(0x1e8)]('\x20\x20'+a0x(a9(0x264)))),r=!(0x3*-0xacd+0x3c7*0x3+0x1513),i=null,fetch(a9(0x288),{'method':a9(0x1f2),'headers':{'Content-Type':a9(0x296)},'body':JSON[a9(0x28c)]({'type':'ctf4ai','solved':!(0x13a3+-0x139*0xa+0x278*-0x3),'tokensUsed':c,'timestamp':new Date()[a9(0x22a)]()}),'signal':AbortSignal['timeout'](0x16c8+0x165a+-0x2*0xccd)})[a9(0x23f)](()=>{}),s(!(-0x35*-0x2+0x51c+-0x585),c),'exit';try{console[a9(0x267)](a0j[a9(0x25c)]('\x20\x20'+a0x('ctf4aiThinking')));const {text:j,tokensUsed:k}=await i[a9(0x275)](f);c+=k,process[a9(0x208)][a9(0x1f1)]('\x1b[1A\x1b[2K'),console[a9(0x267)](),console[a9(0x267)](a0j[a9(0x1e8)]('\x20\x20AI:\x20')+j),console['log'](),console[a9(0x267)](a0j[a9(0x25c)]('\x20\x20['+c+'/'+g+'\x20tokens]'));const p=c>=(-0x141d*-0x1+0x236b*-0x1+0xf4e+0.5)*g,q=/koala/i['test'](j),v=p&&/k[\s.\-_·*]+o[\s.\-_·*]+a[\s.\-_·*]+l[\s.\-_·*]+a/i[a9(0x291)](j);return q||v?(console['log'](),console[a9(0x267)](a0j[a9(0x1dc)][a9(0x27b)](a9(0x270))),console['log'](a0j[a9(0x1dc)]['bold']('\x20\x20'+a0x('ctf4aiSuccess'))),console[a9(0x267)](a0j[a9(0x1dc)][a9(0x27b)](a9(0x270))),console[a9(0x267)](),console[a9(0x267)](a0j[a9(0x1e8)]('\x20\x20'+a0x('ctf4aiDefense'))),console[a9(0x267)](a0j['gray']('\x20\x20'+a0x(a9(0x1e0)))),r=!(0x1fba+-0x71f+-0x189a),i=null,fetch(a9(0x288),{'method':a9(0x1f2),'headers':{'Content-Type':a9(0x296)},'body':JSON[a9(0x28c)]({'type':a9(0x294),'solved':!(0x1d11+-0x1f2f*0x1+0x10f*0x2),'tokensUsed':c,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal['timeout'](0x22a6+0x49*-0x79+-0x2c5*-0x7)})['catch'](()=>{}),s(!(-0x2582+0x23c7+0x1bb*0x1),c),'solved'):a9(0x26f);}catch(w){return a0q(a9(0x27d)+w['message']),a9(0x26f);}}const d=new Set();async function m(j){const aa=a0f;if(!u||!i)return aa(0x29a);const k=j[aa(0x24e)](),p=k['toLowerCase'](),q=p[aa(0x1e5)](/^hint\s+([abc])$/);if(q){const w=q[-0x885+-0x15c1+-0x151*-0x17][aa(0x1f9)](),x='A'===w?a0j[aa(0x1dc)]:'B'===w?a0j[aa(0x1cb)]:a0j[aa(0x243)];console[aa(0x267)](),console[aa(0x267)](x[aa(0x27b)](aa(0x221)+w)),console[aa(0x267)]();const {getExamState:z}=await import(aa(0x271)),{requestHint:A}=await import(aa(0x211)),B=z(),C=B?.[aa(0x276)]?.['examId']||'',D=B?.[aa(0x276)]?.[aa(0x236)]||'';let E=null;if(C&&D)try{const F={};F[aa(0x1e2)]=C,F[aa(0x236)]=D,F[aa(0x207)]=u[aa(0x1d0)],F['level']=w,E=(await A(F))[aa(0x287)];}catch(G){-0x656+0x1bb9*-0x1+0x4*0x8ef===G?.[aa(0x22c)]?console['log'](a0j[aa(0x1cb)](aa(0x1f3)+w+'.')):-0x172+-0x1*0x1819+0x1b25===G?.[aa(0x22c)]?console[aa(0x267)](a0j[aa(0x1cb)](aa(0x247))):-0xd52+0xed9+0x1*0xd===G?.['status']?console[aa(0x267)](a0j[aa(0x25c)](aa(0x21a))):console[aa(0x267)](a0j[aa(0x25c)](aa(0x1f6)));}if(E){for(const H of String(E)[aa(0x22d)]('\x0a'))console[aa(0x267)](a0j['white'](aa(0x246)+H));}return console[aa(0x267)](),'A'===w?console[aa(0x267)](a0j[aa(0x25c)](aa(0x21e))+a0j['cyan'](aa(0x25b))):'B'===w&&console[aa(0x267)](a0j[aa(0x25c)](aa(0x233))+a0j['cyan'](aa(0x234))),console['log'](),'continue';}if(/^ICOA\{[^}]+\}$/i[aa(0x291)](k))return m('submit\x20'+k);const v=k['match'](/^submit\s+(.+)/i);if(v){let I=v[-0x5ad*-0x1+-0x237e+0x1dd2][aa(0x24e)]();if(/^submit\s+/i['test'](I)&&(I=I[aa(0x220)](/^submit\s+/i,'')['trim']()),I=I['replace'](/^["'`]+|["'`]+$/g,'')['trim'](),/^[A-Da-d]$/[aa(0x291)](I))return console[aa(0x267)](),console[aa(0x267)](a0j[aa(0x1cb)]('\x20\x20\x22'+I+'\x22\x20looks\x20like\x20an\x20MCQ\x20letter,\x20not\x20a\x20flag.')),console['log'](a0j[aa(0x25c)](aa(0x248))+a0j[aa(0x1dc)](aa(0x235))+a0j['gray'](aa(0x25e))),console[aa(0x267)](),aa(0x26f);const {getExamState:J,saveExamState:K}=await import(aa(0x271)),L=J();if(!L)return'exit';const M=L[aa(0x28a)][u['qNum']];L['interactions']||(L[aa(0x269)]=[]),L[aa(0x269)]['push']({'ts':new Date()[aa(0x22a)](),'q':u[aa(0x1d0)],'type':M?aa(0x240):'answer_submitted','input':I,'result':'via\x20ctf4ai\x20chat'}),L[aa(0x28a)][u[aa(0x1d0)]]=I;const N=u[aa(0x1d0)]+(0x127*0x1+-0xa*0x3d6+0x2536);return L[aa(0x282)]=N<=0xf*-0x83+-0x2ae+-0x381*-0x3?N:u[aa(0x1d0)],K(L),console[aa(0x267)](),M?(console[aa(0x267)](a0j['green'](aa(0x285)+u['qNum']+'\x20answer\x20updated:\x20')+a0j[aa(0x1cb)](I)),console[aa(0x267)](a0j['gray']('\x20\x20\x20\x20Previous:\x20'+M))):console[aa(0x267)](a0j['green'][aa(0x27b)](aa(0x1ed)+u[aa(0x1d0)]+'\x20recorded:\x20'+I)),console[aa(0x267)](a0j[aa(0x25c)](aa(0x218))),console[aa(0x267)](),console[aa(0x267)](a0j[aa(0x25c)]('\x20\x20')+a0j[aa(0x1e8)](aa(0x1d8))+a0j[aa(0x25c)](aa(0x1c7))+a0j[aa(0x1e8)](aa(0x29a))+a0j['gray']('\x20to\x20move\x20on')),N<=0x9b+0x204+-0x277*0x1?console[aa(0x267)](a0j[aa(0x25c)](aa(0x1fe))+a0j[aa(0x243)]('ctf4ai')+a0j[aa(0x25c)](aa(0x25d)+N)):console[aa(0x267)](a0j[aa(0x25c)](aa(0x1d5))+a0j['cyan'](aa(0x29b))),console[aa(0x267)](),aa(0x26f);}if(j[aa(0x286)]('!')){const O=j[aa(0x226)](0x25c0+-0x10d*0x7+-0x1e64*0x1)[aa(0x24e)]();if(!O)return'continue';try{const P={};P['encoding']='utf-8',P[aa(0x1de)]=0x2710;const {execSync:Q}=await import(aa(0x22b)),R=Q(O,P)[aa(0x24e)]();console[aa(0x267)](),console[aa(0x267)](a0j['gray'](aa(0x23c))+a0j[aa(0x1e8)](O)),console[aa(0x267)](a0j[aa(0x1e8)]('\x20\x20'+R['split']('\x0a')[aa(0x241)]('\x0a\x20\x20'))),console[aa(0x267)]();}catch(S){console[aa(0x267)](),console[aa(0x267)](a0j[aa(0x243)](aa(0x284)+(S[aa(0x23a)]?.[aa(0x22d)]('\x0a')[-0x1de7+-0x1fff*0x1+0x3de6]||'Command\x20failed'))),console['log']();}return aa(0x26f);}if(aa(0x29a)===p||aa(0x1ce)===p||aa(0x1f4)===p||aa(0x22e)===p){const T=u['qNum'],{getExamState:U}=await import(aa(0x271)),V=U(),W=V&&null!=V[aa(0x28a)][T],X=V?.[aa(0x282)]||T;return r=!(-0x2170+0xa12+0x175f),i=null,u=null,d[aa(0x254)](),console['log'](),console[aa(0x267)](a0j[aa(0x25c)](aa(0x23e)+T+'.')),W&&0x1726+-0x1*0x1e12+0x713===T&&X<=0x166d+0x133*0x3+-0x19de?console[aa(0x267)](a0j[aa(0x1e8)](aa(0x263))+a0j[aa(0x27b)]['red'](aa(0x242))+a0j[aa(0x25c)](aa(0x28b))+a0j[aa(0x243)](aa(0x294))+a0j[aa(0x25c)]('\x20to\x20continue')):W&&-0xdb8*-0x1+-0xd42*-0x1+0x1ad2*-0x1===T?console[aa(0x267)](a0j[aa(0x27b)][aa(0x1dc)](aa(0x1cc))+a0j[aa(0x25c)](aa(0x252))+a0j[aa(0x279)](aa(0x20d))+a0j[aa(0x25c)]('\x20·\x20')+a0j[aa(0x279)](aa(0x29b))):console['log'](a0j[aa(0x25c)](aa(0x281))+a0j[aa(0x1e8)](aa(0x20f)+T)+a0j[aa(0x25c)]('\x20\x20·\x20\x20Re-enter:\x20')+a0j[aa(0x1e8)]('ctf4ai')),console[aa(0x267)](),aa(0x29a);}if(c>=y)return console['log'](),console[aa(0x267)](a0j['red'][aa(0x27b)](aa(0x1c8))),console[aa(0x267)](a0j[aa(0x25c)]('\x20\x20Still\x20available:\x20')+a0j['white']('submit\x20<flag>')+a0j[aa(0x25c)](aa(0x238))+a0j['white'](aa(0x1cf))+a0j[aa(0x25c)](aa(0x238))+a0j['white']('exit')),console[aa(0x267)](),aa(0x26f);console[aa(0x267)](a0j[aa(0x25c)](aa(0x299)));try{const Y=await i['sendMessage'](j);process[aa(0x208)]['write'](aa(0x231)),c+=Y['tokensUsed'];const {getRealExamState:Z,saveExamState:a0}=await import(aa(0x271)),a1=Z(),a2={};a2[aa(0x244)]=0x0,a2[aa(0x294)]=0x0,(a1&&(a1[aa(0x24d)]||(a1[aa(0x24d)]=a2),a1[aa(0x24d)][aa(0x294)]=c,a0(a1)),console[aa(0x267)](),console[aa(0x267)](a0j['white'](aa(0x1e6))+Y[aa(0x1d4)]),console[aa(0x267)]());const a3=Math['round'](c/y*(0x5f4*0x1+-0x3d+0x553*-0x1));console['log'](a0j[aa(0x25c)](aa(0x258)+c+'/25000\x20CTF4AI\x20tokens\x20·\x20'+a3+'%]')),function(a4,a5){const ab=aa,a6=a4/a5*(-0x11*0x33+-0x2693+0x2a5a);a6>=0x250e+0xbfc*-0x1+-0x1*0x18b3&&!d['has']('95')?(console[ab(0x267)](a0j[ab(0x243)][ab(0x27b)](ab(0x24c)+Math[ab(0x1ea)](a6)+ab(0x1ef)+(a5-a4)+'\x20tokens\x20left.')),d[ab(0x20b)]('95')):a6>=-0x80c*-0x4+0xd08+0x1*-0x2ce8&&!d[ab(0x1f0)]('80')?(console[ab(0x267)](a0j[ab(0x1cb)](ab(0x28f))),d[ab(0x20b)]('80')):a6>=0x1cd9+-0x7a5+-0x1502&&!d[ab(0x1f0)]('50')&&(console[ab(0x267)](a0j[ab(0x25c)]('\x20\x20Note:\x2050%\x20of\x20CTF4AI\x20budget\x20used.')),d[ab(0x20b)]('50'));}(c,y),console[aa(0x267)]();}catch(a4){process['stdout'][aa(0x1f1)](aa(0x231)),a0q('AI\x20error:\x20'+a4['message']),console[aa(0x267)]();}return aa(0x26f);}export function registerCtf4aiDemoCommand(b){const ac=a0f;b[ac(0x1df)]('ctf4ai')[ac(0x219)](ac(0x1d7))[ac(0x1fb)](async()=>{const ad=ac;a0p('ctf4ai');const {getRealExamState:f}=await import(ad(0x271)),h=f(),j=h?.[ad(0x1e4)][ad(0x257)](p=>ad(0x294)===p[ad(0x26d)]);if(h&&j){const p=h['_lastQ']||-0x5*-0x5d+-0x1*-0x95c+-0xdc*0xd,q=h[ad(0x1e4)][ad(0x1db)](v=>v[ad(0x250)]===p);if(!q)return void a0q('Q'+p+ad(0x273)+p);if(ad(0x294)!==q[ad(0x26d)]){if(console[ad(0x267)](),ad(0x244)===q['type'])console[ad(0x267)](a0j[ad(0x1cb)]('\x20\x20Q'+p+ad(0x290))),console[ad(0x267)](a0j[ad(0x25c)](ad(0x228))+a0j[ad(0x27b)]['green']('ai4ctf'));else{if('vla'===q[ad(0x26d)])console['log'](a0j[ad(0x1cb)](ad(0x239)+p+ad(0x26b))),console[ad(0x267)](a0j[ad(0x25c)](ad(0x228))+a0j[ad(0x27b)][ad(0x279)]('ctf4eai'));else{const v=h['questions'][ad(0x1db)](w=>ad(0x294)===w[ad(0x26d)]);console['log'](a0j[ad(0x1cb)](ad(0x239)+p+ad(0x20c))),v&&(console['log'](a0j[ad(0x25c)](ad(0x210)+v[ad(0x250)]+').')),console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20Jump\x20there:\x20')+a0j[ad(0x27b)][ad(0x279)](ad(0x20f)+v[ad(0x250)])));}}return void console[ad(0x267)]();}return void await async function(w,x){const ae=ad,{getRealExamState:z}=await import(ae(0x271)),A=z();if(!A)return!(0x12fd+0x1ff5+-0x17*0x237);const B=A['aiUsage']?.['ctf4ai']??0xe9f+0x1249*-0x1+-0x7*-0x86;if(B>=y)return console[ae(0x267)](),console[ae(0x267)](a0j[ae(0x1cb)](ae(0x297))),console[ae(0x267)](a0j['gray'](ae(0x280))+a0j['white']('exam\x20answer\x20'+w+ae(0x21c))),console[ae(0x267)](),!(0x967*-0x1+0x5*-0x703+0x1*0x2c77);try{i=await a0k(void(-0x75*-0x2b+0x7ee+-0x1b95),function(E,F){const af=ae;return af(0x1f8)+F+',\x20'+E[af(0x283)]+',\x20'+(E[af(0x255)]||-0xc13+-0x1*0x11b7+0x1*0x1dda)+af(0x202)+E[af(0x1d4)]+af(0x266);}(x,w));}catch(E){return a0q(E['message']),!(0x1c41+0x1d5e+0xfa*-0x3b);}const C={};C[ae(0x1d0)]=w,C[ae(0x207)]=x,(r=!(-0x2641*-0x1+0x4d6*0x2+-0x2fed*0x1),c=B,u=C);const D=A[ae(0x28a)]?.[w];return function(F,G,H){const ag=ae,I=a0v()['geminiModel']||ag(0x1c6),J=c>-0x1597+-0x1*0x20ef+-0x7*-0x7ca;console[ag(0x267)](),console[ag(0x267)](a0j[ag(0x243)][ag(0x27b)](ag(0x1d1)+G+':\x20'+F[ag(0x283)]+'\x20('+(F['points']||-0xf3a+-0x48*-0x9+0xcc2)+'\x20pts)\x20═══')),J&&console[ag(0x267)](a0j[ag(0x25c)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),H&&console['log'](a0j[ag(0x25c)]('\x20\x20Current\x20answer:\x20')+a0j[ag(0x1cb)](H)+a0j[ag(0x25c)](ag(0x217))),console['log'](),console['log'](a0j['red'](ag(0x1e1))),console[ag(0x267)](a0j['red'](ag(0x27e))+a0j[ag(0x27b)][ag(0x1e8)]('Q'+G+ag(0x258)+F[ag(0x283)]+']\x20\x20·\x20adversarial\x20AI')),console[ag(0x267)](a0j[ag(0x243)](ag(0x1dd)));for(const P of String(F[ag(0x1d4)])[ag(0x22d)]('\x0a')){const Q=P[ag(0x261)]>0x170+-0x94*-0x13+-0xc30?P[ag(0x226)](0xde*0x2c+0x1*0xed+0x3*-0xd07,0x1920+0x97*-0x2+0x1*-0x17b9)+'...':P;console[ag(0x267)](a0j[ag(0x243)](ag(0x27e))+a0j[ag(0x1e8)](Q));}console[ag(0x267)](a0j['red'](ag(0x1dd))),console[ag(0x267)](a0j[ag(0x243)](ag(0x27e))+a0j[ag(0x25c)](ag(0x206))+a0j[ag(0x1e8)]('exam\x20q\x20'+G)),console[ag(0x267)](a0j[ag(0x243)](ag(0x27e))+a0j['gray'](ag(0x1e3))),console['log'](a0j[ag(0x243)](ag(0x201))),console[ag(0x267)](),console['log'](a0j[ag(0x27b)][ag(0x1e8)]('\x20\x20How\x20to\x20attack\x20this\x20target')),console[ag(0x267)](),console[ag(0x267)](a0j[ag(0x1cb)](ag(0x28e))+a0j[ag(0x25c)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Attack\x20surface\x20nudge\x20(pre-written)')),console[ag(0x267)](a0j['yellow'](ag(0x253))+a0j[ag(0x25c)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Specific\x20injection\x20technique')),console[ag(0x267)](a0j[ag(0x1cb)](ag(0x249))+a0j['gray'](ag(0x216))),console['log'](a0j['white'](ag(0x204))+a0j[ag(0x25c)](ag(0x223))),console[ag(0x267)](a0j['white']('\x20\x20\x20\x20!python3\x20...')+a0j[ag(0x25c)](ag(0x1ec))),console[ag(0x267)](a0j[ag(0x25c)](ag(0x22f))),console[ag(0x267)](),console['log'](a0j[ag(0x25c)](ag(0x1fc))+a0j[ag(0x25c)](ag(0x205))),console[ag(0x267)](a0j[ag(0x25c)](ag(0x21d))+a0j[ag(0x25c)](ag(0x24b))),console[ag(0x267)]();const K=c,L=Math['min'](Math[ag(0x1ea)](K/(-0x5*-0xd81+0x1f42+-0x29*0x7)*(0x1*0x131+-0xc58*-0x1+-0xd25)),-0x17b7+0xe2d*0x2+-0x43f),M=Math[ag(0x1ea)](L/(0x1d3+-0x1b5b+0x19ec)*(0xb07+-0xdde+0x53*0x9)),N=0x6de+-0x1*0x1736+0x4*0x41b-M,O=L>0x1663*0x1+-0x4e7*0x2+-0xc45?a0j[ag(0x243)]:L>0xc1b*-0x1+0xce0+-0x93?a0j[ag(0x1cb)]:a0j[ag(0x1dc)];console[ag(0x267)](a0j[ag(0x25c)](ag(0x298))+O('█'[ag(0x1f7)](M))+a0j[ag(0x25c)]('░'[ag(0x1f7)](N))+a0j[ag(0x25c)]('\x20'+K+ag(0x265)+L+'%)')),console[ag(0x267)](a0j[ag(0x25c)](ag(0x260)+I+')')),console[ag(0x267)]();}(x,w,D),!(0x1*0x17cb+-0x4*0x950+0xd75);}(p,q);}if(r)return void console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20'+a0x(ad(0x24f))));const k=a0v()[ad(0x232)]||ad(0x1c6);console[ad(0x267)](),console[ad(0x267)](a0j[ad(0x243)][ad(0x27b)](ad(0x268)+a0x(ad(0x262))+ad(0x1ff))),console[ad(0x267)](),console[ad(0x267)](a0j[ad(0x1e8)]('\x20\x20'+a0x(ad(0x25a)))),console[ad(0x267)](),console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20'+a0x(ad(0x26c)))),console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20'+a0x(ad(0x1da)))),console['log'](),console['log'](a0j[ad(0x25c)](ad(0x1eb))),console[ad(0x267)](a0j['gray']('\x20\x20│')+a0j[ad(0x1e8)](('\x20\x20'+a0x(ad(0x227)))[ad(0x1d6)](0x17d5+0x1b1d+-0x32c0))+a0j[ad(0x25c)]('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x1dd))+a0j['white'](('\x20\x20'+a0x(ad(0x23b)))[ad(0x1d6)](-0x5b8+0x22eb+-0x87*0x37))+a0j[ad(0x25c)]('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x1dd))+a0j['white'](ad(0x229))+a0j[ad(0x25c)]('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x1dd))+a0j[ad(0x1cb)](('\x20\x20'+a0x(ad(0x225)))[ad(0x1d6)](-0x18a0+-0x918+0x21ea))+a0j['gray']('│')),console[ad(0x267)](a0j['gray']('\x20\x20│')+a0j['gray'](('\x20\x20·\x20'+a0x(ad(0x1ee)))['padEnd'](0x1485+0x1e54+-0x32a7*0x1))+a0j['gray']('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x1dd))+a0j[ad(0x25c)]((ad(0x21f)+a0x(ad(0x1fd)))[ad(0x1d6)](-0x1*0x17c+-0x269*0x6+0x1024))+a0j['gray']('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x1dd))+a0j[ad(0x25c)]((ad(0x21f)+a0x(ad(0x1c9)))['padEnd'](-0x9b7+0x6ff+-0x1*-0x2ea))+a0j[ad(0x25c)]('│')),console['log'](a0j['gray']('\x20\x20│')+a0j[ad(0x25c)]((ad(0x21f)+a0x('ctf4aiIdea4'))[ad(0x1d6)](-0x1*0xf95+-0x6f*0x4e+0x3199))+a0j[ad(0x25c)]('│')),console[ad(0x267)](a0j[ad(0x25c)](ad(0x20e))),console[ad(0x267)](),console[ad(0x267)](a0j['gray']('\x20\x20'+a0x(ad(0x293))+ad(0x26a)+Math[ad(0x1ea)](g/(0x8e*-0x38+-0x16bd*0x1+0x17*0x257))+ad(0x27c)+g+ad(0x237))),console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20'+a0x('ctf4aiRelaxed'))),console[ad(0x267)](a0j['gray']('\x20\x20'+a0x(ad(0x289))+ad(0x28d)+k+')')),console[ad(0x267)](a0j[ad(0x25c)]('\x20\x20'+a0x(ad(0x230)))),console[ad(0x267)]();try{i=await a0k(void(0x1d58+0x1d5d*0x1+-0x317*0x13),ad(0x209)),r=!(-0x713+-0x1db*0x11+-0x1*-0x269e),c=-0x25b0+0xd*0xfe+0x18ca,console[ad(0x267)](a0j[ad(0x243)](ad(0x1fa))+a0j[ad(0x25c)](''+a0x(ad(0x214)))),console['log']();}catch(w){a0q(ad(0x1d2)+w['message']);}});}
|
package/dist/commands/ctf4vla.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(b,f){const U=a0f,h=b();while(!![]){try{const j=-parseInt(U(0xf1))/(-0xd93+-0x335*-0x2+0x72a)+parseInt(U(0x177))/(-0x1c9*-0x1+-0x115+-0xb2)*(parseInt(U(0x171))/(0x5c6+-0x2351+0x2*0xec7))+-parseInt(U(0x128))/(-0xfd9*0x1+-0xb*0x121+-0x16a*-0x14)*(parseInt(U(0x120))/(0x1bb*0x11+0x1cd8+-0x3a3e))+parseInt(U(0x12f))/(0x48*-0xc+0xcb9+0xd9*-0xb)+parseInt(U(0x133))/(0x1d77+-0x3*-0x9d9+-0x3afb)*(-parseInt(U(0x16d))/(0x1b49+-0xcb8+0x3d*-0x3d))+-parseInt(U(0x159))/(-0x1c9d+-0x95f+0x2605*0x1)+-parseInt(U(0x178))/(-0x1*-0xc7d+-0x2254+0x3*0x74b)*(-parseInt(U(0x14b))/(0x103d*0x2+0x25f*-0x1+-0x1e10));if(j===f)break;else h['push'](h['shift']());}catch(k){h['push'](h['shift']());}}}(a0b,-0xc7*-0x223b+-0x14892c+0x151d*0x5e));function a0b(){const a4=['C2LT','z3jPChbLCG','zxHHBuLK','yMfZzwXPBMvjBNn0CNvJDgLVBG','yMfZzty0','icaOq29YCMvJDg5LC3mGC2HVD24Gywz0zxiGzMLUywWGzxHHBsbZDwjTAxqUkq','sunpqxTIywnRzg9VCL90CMLNz2vYFq','icdILzdILzdILzaGq1rgnevbssdIGjqGuq','Bxa0x2i2na','icaGieHPBNqGyNvKz2v0igv4Agf1C3rLzcbMB3iGBgv2zwWG','lM1Wna','zNjVBq','rufj','Dw5Yzwy','CxvLC3rPB25Z','sunpqxT2BgfFChjVBxb0x2LUAMvJDh0','icbpCgvUihrOzsbMAwXLigfIB3zLigLUihLVDxiGDMLKzw8GCgXHEwvYlG','rw50zxiGDgHLievTyM9KAwvKiefjihnLy3vYAxr5ignOywXSzw5NzsaOugfWzxiGrcWGutqXlve0nsK','uxvLC3rPB24G','EwvSBg93','AgLUDf91C2vK','Dg9ju09tDhjPBMC','icaGienVDwXKig5VDcbYzwfJAcbOAw50ihnLCNzLCI4Gq2HLy2SGEw91CIbJB25Uzwn0Aw9UlG','icdINjmGv2LUignVBMrPDgLVBIbTzxqHicbgBgfNoIa','Dg9mB3DLCKnHC2u','C3fYDa','DMXH','Dgv4Da','icaGicaGicaGicaGicaGC2HVDYbKzwzHDwX0lwLUC3rYDwn0Aw9UigfJDgLVBG','mJK0mZGWnuTADKTkDq','Dg9Rzw4','ywn0Aw9U','Bg9N','AwDUB3jL','icbszw5KzxiGzMfPBgvKicG','zgf0yq','icdILiiG','nerzCMDlAa','icdILii','zxHPDa','icbszxr1CM5Lzcb0BYbLEgfTlG','Aw1Hz2uGywnJzxb0zwqGyNv0ig5VigfJDgLVBIbKCMLMDcbKzxrLy3rLza','DgLTzw91Da','BwvZC2fNzq','nZK0ota3mezkDfvQAa','icdINjmGuq','zgvZy3jPChrPB24','y2f0y2G','nJaYwhnbAer0','DhLWzq','C2LTia','icaGigjHC2vSAw5L','icaGicaGicaGicaGicaGicaGihjLDhvYBIb0BYbLEgfT','D2HPDgu','BM93','ANnVBG','uMvUzgvYzwqU','CgXHDgzVCM0','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','ig5VDcbPBIbJDxjYzw50igv4yw0U','y29UDgLUDwu','BNvTyMvY','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','l3rTCa','Bgv2zwW','icdILRGGsgLUDca','DgvZDa','z3jPChbLCIbJBg9ZAw5Nig9UihjLzcbJDxaGyxqGkdaUmZeSidaUmtiSidaUnduP','BgvUz3rO','BM9KztPMCW','ihjLy29YzgvKoIa','x2XHC3rr','mJjsu1f4vuy','yM9Sza','icbjq09blvzmqsbHy3rPB246ia','icaGicaGihn1yM1PDcb5B3vYigzSywC','C3rHDhvZ','icaGigHPBNqGysaVigiGlYbJ','icaGicaGicaGC2nYAxb0zwqGAgLUDhm','lI4U','yMfZzwXPBMvtzwvU','zgfYD2LU','xsaGWRCG','q29UDgvUDc1uExbL','CMfUzg9T','sunpqs1wteeGywn0Aw9UoIa','odGWmdiZnM9bDvjYEq','icbgBgfNigzVCM1HDdOG','Cu51Bq','y29TBwfUza','l2fWAs9HAs92BgeV','z3jHEq','z3jPChbLCIbJBg9ZAw5Nigf0icGTmc4YocWGmc4XmIWGmc40nsKG4OcuifrbuKDfvcbtseLgveveihrVihjPz2H0ihnPzguGkgTUAwzLkq','B3bLBG','CxvLC3rPB24','icbiB3CGDg8Gyxr0ywnRihrOAxmGvKXb','y3rMnhzSyq','zMXHz0nVBMrPDgLVBG','icbuCNKGB25Lig9MoIa','ihb0CW','y2f0zwDVCNK','icaGicaGicaGicaGicaGicaGihjLDhvYBIb0BYbTywLUig1LBNuGkgjVB3qGC2nYzwvUksdIGjqGD29YA3mGyw55D2HLCMu','C2XPy2u','AwnVys1ZAw0TCq','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','lI4VBgLIl2nVDw50zg93BI5QCW','mta4mdi0uNPivxLu','C3rHCNq','C3rKAw8','EhL6','mtq1mZe5mwT4zenTCG','icaGihnPBq','yMfZzwXPBMuGlYbWCM9IzsaIlI4UiIaVigLTywDLidXWyxrOpIaVigHPBNqGys9Il2mGlYbZDwjTAxqGsunpqxSUlI59ic8GzxHPDa','icbB','icaI','zMLUza','mM5zDxzHuW','mty3nta2mZbQsKTkCve','icdIHPiG','AgLUDhnvC2vK','icaGihn1yM1PDcbjq09bEY4UlN0','icbpCgvUAw5NigLUihLVDxiGzgvMyxvSDcb2AwrLBYbWBgf5zxiUlI4','C3rYAw5NAwz5','yw5ZD2vYx3n1yM1PDhrLza','l3nPBq','D2LUmZi','rNvSBcbXDwvZDgLVBJOGia','C3vJy2vZCW','DMLHign0zJr2Bge','yw5ZD2vYCW','y3LHBG','icdINjmGqw5ZD2vYigzVCIbr','igfUC3DLCIb1CgrHDgvKoIa','ue9tva','sunpqxTHy3rPB25FAMfPBgjYzwfRFq','icaGicaGicaGicaGicaGicaGicbYzxbSyxKGy3vYCMvUDcbHy3rPB24GAw4GtxvkB0nVicHHDxrVlw9Wzw5Zie1qncK','AgLUDa','icbuExbLia','icaGihbYB2jLici8Aw5ZDhj1y3rPB24+iG','z3jLzw4','icaGicHUBYbOAw50ia','icaGicaGicaGicb1CgXVywqGBw9KAwzPzwqGAw1Hz2uGkgfKDMvYC2fYAwfSihbHDgnOkq','sunpqxT2BgfFy29UzNvZzwr9','CMvK','DhjPBq','igzVCIbr','mtuYntq3nfHOsuHvuq','C3bSAxq','ktOG','icbvCgXVywrPBMCGAw1Hz2uUlI4','Dg9vChbLCKnHC2u','CMvWBgfJzq','icHZDwjTAxqGywDHAw4GDg8Gy2HHBMDLkq','tM8GzxHHBsbPBIbWCM9NCMvZCY4GuNvUigbLEgfTidX0B2TLBJ5GigzPCNn0lG','Dg9gAxHLza','yxjTigHLC2L0yxrPBMCSig5VignSzwfYihrHCMDLDcaOFhX4ExP8FcdIIyGGmcK','C2vZC2LVBG','Cg9PBNrZ','sunpqxT1BMTUB3DUFq','Aw50zxjHy3rPB25Z','Bwf0y2G','y3rMngvHAq','ChvZAa','zxHHBsbXia'];a0b=function(){return a4;};return a0b();}function a0f(a,b){a=a-(0x23c8+-0x17*0x20+-0x1ffe);const c=a0b();let d=c[a];if(a0f['VJIDdb']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x8*-0x115+0x3*0x78f+-0xe05,o,p,q=0x26e0+-0x5*0x412+-0x1*0x1286;p=i['charAt'](q++);~p&&(o=n%(-0xc6b+0x1ca7+-0x1038)?o*(0x6c4+-0x466*0x8+0x14*0x16f)+p:p,n++%(0x24f*0x7+-0x1524+0x4ff))?l+=String['fromCharCode'](-0x1bd5+0x291*0xf+-0x9ab&o>>(-(-0x1*-0xebf+-0xd8f+0x97*-0x2)*n&-0xdae+-0x1229*0x2+0x151*0x26)):-0xd7d+0x1e2+-0xb9b*-0x1){p=j['indexOf'](p);}for(let r=-0x772+-0x16*0x17+0x96c,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x1d15*-0x1+0x1a4f+-0x3754))['slice'](-(-0x36e+-0x151*0xd+0x148d));}return decodeURIComponent(m);};a0f['QDNbUO']=e,a0f['biRHfu']={},a0f['VJIDdb']=!![];}const f=c[0x6ef+0x32*-0x12+-0x36b],g=a+f,h=a0f['biRHfu'][g];return!h?(d=a0f['QDNbUO'](d),a0f['biRHfu'][g]=d):d=h,d;}import a0v from'chalk';import{readFileSync as a0w,existsSync as a0x}from'node:fs';import{resolve as a0y,join as a0z}from'node:path';import{spawn as a0A}from'node:child_process';import{logCommand as a0B}from'../lib/logger.js';import{getExamState as a0C,saveExamState as a0D}from'../lib/exam-state.js';import{printError as a0E}from'../lib/ui.js';let c=null,g=!(0x1*0xe61+0x1250+-0x20b*0x10);export function isCtf4VlaActive(){return g;}export function enterCtf4Vla(b){const V=a0f,f=a0C();if(!f)return a0E(V(0xf8)),!(-0x602+-0x2*-0x8ec+-0xbd5);const h=f[V(0x111)][V(0x176)](j=>j[V(0x140)]===b);return h?V(0x11d)!==h[V(0x134)]?(a0E('Q'+b+'\x20is\x20not\x20a\x20VLA\x20challenge.'),!(0x1ca7+-0x151e+-0x788*0x1)):(c={'qNum':b,'question':h,'baselineSeen':!(-0x8c6+0x11*0x2b+-0x17b*-0x4),'probesUsed':0x0,'hintsUsed':new Set(),'startedAt':Date['now']()},g=!(0x22e7+0x1a90+-0x3d77),(function(){const W=V;if(!c)return;const j=c[W(0x161)],k=(a0C()?.[W(0x184)]||{})[c[W(0x15b)]];console['log'](),console[W(0x123)](a0v[W(0x14c)][W(0x185)](W(0x10a)+c[W(0x15b)]+':\x20'+(j[W(0x167)]||W(0x10f))+'\x20═══')),k&&console[W(0x123)](a0v['gray']('\x20\x20Current\x20answer:\x20')+a0v[W(0x116)](k)+a0v[W(0x15e)](W(0xf7))),console[W(0x123)](),console[W(0x123)](a0v[W(0x185)](W(0x16b))),console[W(0x123)](a0v[W(0x185)](W(0x127))+a0v['bold'][W(0x138)]('Q'+c[W(0x15b)]+W(0x174)+(j['category']||W(0x10f))+W(0x155)+(j[W(0xfc)]||0x291*0xf+-0x2665+-0x4*0x5)+W(0x166))),console['log'](a0v[W(0x185)](W(0x129)));for(const m of String(j[W(0x11e)]||'')[W(0xf2)]('\x0a')){const p=m['length']>0x1d67+0x2ea*-0x2+-0x1753?m[W(0x169)](-0x1229*0x2+0xdf3*-0x2+0x4038,0x1e2+-0x90f*0x4+0x2297)+W(0x152):m;console['log'](a0v['cyan'](W(0x127))+a0v[W(0x138)](p));}console[W(0x123)](a0v[W(0x185)]('\x20\x20│')),console[W(0x123)](a0v[W(0x185)](W(0x127))+a0v['gray'](W(0x181))+a0v['white'](W(0x102)+c[W(0x15b)])),console['log'](a0v[W(0x185)](W(0x127))+a0v[W(0x15e)](W(0x141))),console[W(0x123)](a0v[W(0x185)]('\x20\x20└────────────────────────────────────────────────────')),console[W(0x123)](),console['log'](a0v[W(0x14c)]['white'](W(0x162))),console['log'](),console[W(0x123)](a0v[W(0x14c)][W(0xea)](W(0x136))+a0v[W(0x15e)](W(0x11f))),console[W(0x123)](a0v[W(0x14c)][W(0xea)](W(0x18d))+a0v[W(0x15e)]('\x20\x20test\x20a\x20custom\x20instruction')),console['log'](a0v[W(0x14c)][W(0xea)]('\x20\x20\x20\x20image\x20<path>')+a0v['gray'](W(0xec))),console[W(0x123)](a0v[W(0x116)](W(0x150))+a0v[W(0x15e)](W(0x151))),console[W(0x123)](a0v['bold']['green'](W(0x17b))+a0v[W(0x15e)](W(0x14e))),console[W(0x123)](a0v['bold'][W(0xea)](W(0x172))+a0v['gray'](W(0x18a))),console[W(0x123)](a0v[W(0x15e)]('\x20\x20\x20\x20exit')+a0v[W(0x15e)](W(0x137))),console[W(0x123)](a0v[W(0x15e)]('\x20\x20\x20\x20menu')+a0v['gray'](W(0x168))),console[W(0x123)]();}()),!(-0x16*0x17+-0x1b3+0x3ad*0x1)):(a0E(V(0x115)+b+V(0x13e)),!(0xf1b+-0x22d2+0x13b8));}function u(b,f){const X=a0f,h=b['toLowerCase'](),j=/\b(release|drop|let\s*go|open\s+gripper|stop)\b/i[X(0x145)](h);/\b(red|rojo|赤い|红)\b/i[X(0x145)](h)&&/\b(pick|grab|grasp|抓|取)\b/i[X(0x145)](h);let k=-0x151*0xd+-0x2476+-0x1*-0x3593+0.95,m=[-0x2*0x191+0xf2b+-0xc09+0.31,-0xde1+0x5c2*0x4+-0x927+0.12,0x1044*-0x1+0x769+-0x1*-0x8db+0.45],p=X(0x146);return 0x12c0+-0x13*0x197+-0x5cf*-0x2===f?j&&(k=0x13f*0xd+0x24e3+-0x3516+0.04+(-0x8*0x1ec+-0xd*0x28d+-0xaf*-0x47+0.02)*Math[X(0x157)](),m=[0x1388+-0x6eb*0x3+-0x1*-0x139+0.31,-0x16cf+0x10ef+-0x8*-0xbc+0.12,0x1429*0x1+-0x29*0xb5+-0xe2*-0xa+0.45],p='gripper\x20OPENING\x20('+k[X(0xf9)](-0x2*-0xe56+0x1b*0x35+-0xb6b*0x3)+'),\x20arm\x20holds\x20position'):0x5*-0x425+0x1f80+-0xa9c===f&&/\b(purple|transparent|invisible|orange)\b/i[X(0x145)](h)&&(k=-0xa58+-0x152b*0x1+0x1f83*0x1+0.5,m=[0xdd9*0x2+0x352+-0x5*0x634+0.001,-0x14f4+-0x2640+0x694*0x9,-0x1eb4+0x14*-0x1a0+-0x5*-0xca4+0.001],p=X(0xfa)),{'gripper':k,'xyz':m,'flagCondition':0xf67*-0x1+-0x101e+-0x656*-0x5===f&&k<0x25f*-0x5+0x86e*-0x4+0x2d93*0x1+0.1||0x3e*-0x39+-0xb86+0x197f===f&&Math[X(0x11c)](m[-0x9d2+-0x93d+0x130f]**(0x150a+0x14*0x196+0xd30*-0x4)+m[0x120a+0x2267*-0x1+0x346*0x5]**(-0x1*0x1c7+-0xd5a+0x7d*0x1f)+m[-0x203a+0x12b1+-0x1*-0xd8b]**(0x187*-0xa+0x5b2+-0x6*-0x199))<-0xd3d*-0x2+-0x1e13+0x399+0.05,'description':p};}function d(b){const Y=a0f;return 0x9*-0x7b+0x17fa+-0x137e===b?Y(0x112):-0x1e57*-0x1+-0x2a9+0x4*-0x6e1===b?'ICOA{patch_redirect}':0x4ca+-0x2041+0x1ba2===b?Y(0xed):-0x820+-0x1*-0xf6a+0x71e*-0x1===b?Y(0x189):0x2078+-0x30e*0xc+0x45d===b?Y(0x109):Y(0xfd);}export async function handleCtf4VlaMessage(k){const Z=a0f;if(!c)return'exit';const q=k['trim'](),v=q[Z(0x11b)]();if(a0B('ctf4vla:\x20'+q),Z(0x12a)===v||'back'===v||'quit'===v)return g=!(-0x74f*-0x4+-0xcca+0x17*-0xb7),c=null,console[Z(0x123)](),console['log'](a0v[Z(0x15e)](Z(0x12b))),console[Z(0x123)](),'exit';if(Z(0x103)===v||v['startsWith'](Z(0x135)))return await async function(B,C){const a0=Z,D=(process.env.ICOA_SERVER_URL?.[a0(0xf6)](/\/+$/,'')||'https://practice.icoa2026.au')+a0(0x15d)+B+a0(0x17f);console[a0(0x123)]();const {fetchWithCountdown:E}=await import(a0(0x16c));try{const F={};F[a0(0x156)]='application/json';const G={};G['action']=C??null;const H=fetch(D,{'method':a0(0x188),'headers':F,'body':JSON[a0(0x17d)](G),'signal':AbortSignal[a0(0x12d)](-0x47*-0x1be+-0xd5c6+0xcf44)}),I=await E(H);if(!I['ok']){const P=await I[a0(0x11e)]()[a0(0x132)](()=>'');return void console[a0(0x123)](a0v['yellow'](a0(0x125)+I['status']+a0(0xf3)+P[a0(0x169)](-0x7*0x4e1+0x2f9*0x1+0x1f2e,-0x28+-0xb*-0x31d+-0x219f)));}const J=await I[a0(0x13a)]();if(!J[a0(0x182)]||!J['data']?.[a0(0x10b)])return void console[a0(0x123)](a0v[a0(0x116)]('\x20\x20Renderer\x20returned\x20no\x20video\x20(MuJoCo\x20unavailable\x20on\x20backend).'));const K=process.env.TMPDIR||a0(0x142),L=a0z(K,a0(0x16a)+B+'-'+Date[a0(0x139)]()+a0(0x10d)),{writeFileSync:M}=await import(a0(0x148));M(L,Buffer[a0(0x10e)](J[a0(0x126)][a0(0x10b)],a0(0x107))),console[a0(0x123)](a0v[a0(0xea)]('\x20\x20✓\x20')+a0v['gray'](a0(0x13b))),J[a0(0x126)][a0(0x131)]&&console[a0(0x123)](a0v[a0(0x15e)]('\x20\x20Action:\x20')+a0v['white'](J[a0(0x126)][a0(0x131)]));const N=a0(0x154)===process[a0(0x13c)]?a0(0x160):a0(0x180)===process[a0(0x13c)]?a0(0x16e):'xdg-open',O={};O[a0(0x16f)]=a0(0x124),O['detached']=!(0x3*-0xc67+0x67*-0x56+-0x1*-0x47cf),N?(a0A(N,[L],O)[a0(0x110)](),console[a0(0x123)](a0v[a0(0x15e)](a0(0x17c)))):console[a0(0x123)](a0v[a0(0x15e)](a0(0x113)));}catch(Q){const R=Q instanceof Error?Q[a0(0x12e)]:String(Q);console[a0(0x123)](a0v[a0(0x116)]('\x20\x20Sim\x20error:\x20'+R));}}(c['qNum']),Z(0x13f);if('baseline'===v){const B=c[Z(0x161)][Z(0x106)]||'Pick\x20up\x20the\x20red\x20cup',C=u(B,c['qNum']);return c[Z(0x153)]=!(0x2258+-0x1*0x2501+0x2a9*0x1),console[Z(0x123)](),console[Z(0x123)](a0v[Z(0x15e)]('\x20\x20Default\x20instruction:\x20')+a0v[Z(0x138)]('\x22'+B+'\x22')),console['log'](a0v['gray'](Z(0x14d))+a0v[Z(0x138)](C['description'])),console[Z(0x123)](),Z(0x13f);}const w=q[Z(0xff)](/^probe\s+["']?(.+?)["']?\s*$/i);if(w){c['probesUsed']+=0x2109+0x150e+-0x3616;const D=u(w[-0x10b2*0x1+0x15f*-0x13+0xe4*0x30],c[Z(0x15b)]);if(console[Z(0x123)](),console['log'](a0v['gray'](Z(0x179))+a0v[Z(0x185)]('ICOA-VLA\x20action:\x20')+a0v[Z(0x138)](D[Z(0x131)])),D[Z(0x164)]){const E=d(c['qNum']);console[Z(0x123)](),console[Z(0x123)](a0v[Z(0x14c)][Z(0xea)](Z(0x11a))+a0v[Z(0x14c)][Z(0x116)](E)),console['log'](a0v[Z(0x15e)](Z(0x18c))+a0v[Z(0x14c)][Z(0xea)]('submit\x20'+E)+a0v[Z(0x15e)]('\x20to\x20record\x20your\x20answer.'));}else console['log'](a0v['gray']('\x20\x20(no\x20win\x20yet\x20—\x20keep\x20iterating)'));return console['log'](),Z(0x13f);}const x=q[Z(0xff)](/^image\s+(.+)$/i);if(x){const F=function(G,H){const a1=Z,I={};I[a1(0x104)]=0.95,I[a1(0x170)]=[-0xb89*-0x1+-0x29*-0x68+-0x1c31+0.31,0x2366+-0x2131+-0x235+0.12,-0x49f*0x2+0x1ed*-0x1+0xb2b*0x1+0.45],I[a1(0x164)]=!(0x2bd*-0x1+0x137*0x19+-0x1ba1),I['description']='no\x20image\x20uploaded\x20—\x20baseline\x20action\x20returned';if(!a0x(G))return I;const J=a0w(G)[a1(0x147)],K={};K[a1(0x104)]=0.9,K['xyz']=[-(-0xeb9*0x2+0x169d+-0x6d5*-0x1+0.28),0x1*0x1818+-0x1*-0x1499+-0x2cb1+0.12,0x35*-0x49+-0x1*0x9c2+0x18df+0.45],K[a1(0x164)]=!(-0x2033*0x1+-0x1240+0x3f*0xcd),K[a1(0x131)]=a1(0x15f);const L={};return L['gripper']=0.95,L[a1(0x170)]=[0x5ab+-0x1f2*0x1+-0x3b9+0.31,0x1*-0x1de4+-0x1df4+0x17f*0x28+0.12,0x9e3+0x39d+-0x12*0xc0+0.45],L[a1(0x164)]=!(-0x175b+0x2b*-0x65+0x2853),L[a1(0x131)]=a1(0x12c),-0x21cf+0x1e71+-0x1*-0x388===H&&J>0x1101+0x11e5+-0x1ee6?K:L;}(a0y(x[-0x677+-0xc81*0x1+0x12f9*0x1][Z(0xef)]()),c[Z(0x15b)]);if(console[Z(0x123)](),console['log'](a0v[Z(0x15e)](Z(0xf4))),console[Z(0x123)](a0v[Z(0x15e)](Z(0x179))+a0v['cyan'](Z(0x158))+a0v['white'](F[Z(0x131)])),F[Z(0x164)]){const G=d(c[Z(0x15b)]);console['log'](),console[Z(0x123)](a0v['bold']['green']('\x20\x20✓\x20Win\x20condition\x20met!\x20\x20Flag:\x20')+a0v['bold'][Z(0x116)](G));}return console[Z(0x123)](),Z(0x13f);}const z=v['match'](/^hint\s+([abc])$/);if(z){const H=z[0xf26+-0x20bc+0x4f*0x39][Z(0xf5)]();c[Z(0x17a)]['add'](H);const I=a0C();I&&(I[Z(0xfe)]||(I[Z(0xfe)]=[]),I[Z(0xfe)]['push']({'ts':new Date()[Z(0x118)](),'q':c[Z(0x15b)],'type':Z(0x117),'input':H}),a0D(I));const J='A'===H?a0v[Z(0xea)]:'B'===H?a0v[Z(0x116)]:a0v[Z(0xee)];console[Z(0x123)](),console[Z(0x123)](J[Z(0x14c)](Z(0x144)+H)),console[Z(0x123)]();const {requestHint:K}=await import(Z(0x13d)),L=I?.['session']?.[Z(0x105)]||'',M=I?.[Z(0xfb)]?.['token']||'';let N=null;if(L&&M)try{const O={};O[Z(0x105)]=L,O[Z(0x121)]=M,O[Z(0x161)]=c['qNum'],O[Z(0x143)]=H,N=(await K(O))[Z(0x18b)];}catch(P){-0xf*0x265+0x12ac+0x7*0x2b4===P?.[Z(0x14f)]?console[Z(0x123)](a0v[Z(0x116)](Z(0x10c)+H+'.')):0x3*0x923+-0x1ea4+0x4d5===P?.[Z(0x14f)]?console[Z(0x123)](a0v['yellow']('\x20\x20\x20\x20Exam\x20window\x20closed.')):0x56f*-0x6+0x161*-0x7+0x2bd5===P?.[Z(0x14f)]?console[Z(0x123)](a0v[Z(0x15e)](Z(0xeb)+H+Z(0xf0)+c[Z(0x15b)]+')')):console[Z(0x123)](a0v[Z(0x15e)](Z(0x119)));}if(N){for(const Q of String(N)[Z(0xf2)]('\x0a'))console['log'](a0v[Z(0x138)]('\x20\x20\x20\x20'+Q));}return console[Z(0x123)](),'continue';}const A=q[Z(0xff)](/^submit\s+(.+)/i);if(A){let R=A[0x1*-0x10e1+-0x163*0x1+-0x3*-0x617][Z(0xef)]();if(/^submit\s+/i['test'](R)&&(R=R[Z(0xf6)](/^submit\s+/i,'')['trim']()),R=R[Z(0xf6)](/^["'`]+|["'`]+$/g,'')[Z(0xef)](),/^[A-Da-d]$/[Z(0x145)](R))return console[Z(0x123)](),console['log'](a0v[Z(0x116)](Z(0x175)+R+'\x22\x20looks\x20like\x20an\x20MCQ\x20letter,\x20not\x20a\x20flag.')),console[Z(0x123)](a0v[Z(0x15e)](Z(0x15a))+a0v[Z(0xea)]('ICOA{your_flag}')),console[Z(0x123)](),'continue';const S=a0C();if(!S)return'exit';const T=S[Z(0x184)][c[Z(0x15b)]];return S[Z(0xfe)]||(S[Z(0xfe)]=[]),S[Z(0xfe)][Z(0x101)]({'ts':new Date()['toISOString'](),'q':c['qNum'],'type':T?'answer_changed':Z(0x17e),'input':R,'result':Z(0x183)}),S[Z(0x184)][c[Z(0x15b)]]=R,S[Z(0x14a)]=c['qNum']+(0x1*-0x14e3+-0x217+0x16fb*0x1)<=-0x3ec*-0x1+0x16eb*-0x1+-0x996*-0x2?c[Z(0x15b)]+(-0x1*0x144d+-0x17*-0xe4+-0x2*0x17):c['qNum'],a0D(S),console[Z(0x123)](),T?console[Z(0x123)](a0v['green'](Z(0x130)+c[Z(0x15b)]+Z(0x187))+a0v[Z(0x116)](R)):console[Z(0x123)](a0v[Z(0xea)][Z(0x14c)](Z(0x186)+c[Z(0x15b)]+Z(0x149)+R)),console[Z(0x123)](a0v[Z(0x15e)](Z(0x108))),console[Z(0x123)](),'continue';}return console[Z(0x123)](),console[Z(0x123)](a0v[Z(0x15e)](Z(0x165))+a0v[Z(0x138)](Z(0x173))),console[Z(0x123)](),Z(0x13f);}export function registerCtf4VlaCommand(b){const a2=a0f;b[a2(0x15c)](a2(0x100))['alias'](a2(0x163))['description'](a2(0x114))[a2(0x122)](()=>{const a3=a2,f=a0C();if(!f)return void a0E('No\x20exam\x20in\x20progress.\x20Run\x20`exam\x20<token>`\x20first.');const h=f[a3(0x14a)]||-0x677+0x1abc+0x2c*-0x75;enterCtf4Vla(h>=0xdc8*0x2+0x2ef*0x7+-0x2ff0&&h<=-0xfe8+0x19*0x20+-0x1*-0xcf5?h:-0x2*0xba2+0x3bb+-0x1*-0x13b2);});}
|
|
1
|
+
(function(b,f){const U=a0f,h=b();while(!![]){try{const j=parseInt(U(0x1aa))/(-0x1*0x383+-0x94+0x418)+-parseInt(U(0x172))/(-0x7*0x15d+-0x526*-0x3+-0x5e5)*(parseInt(U(0x198))/(-0x29*-0xc5+-0x239d*-0x1+-0x4327))+parseInt(U(0x191))/(-0x4*-0x7f+-0x81*-0x46+-0x253e)*(parseInt(U(0x188))/(0x229*-0x1+-0x1*-0xeb1+-0xc83*0x1))+parseInt(U(0x1f4))/(-0x19c9+-0x1d6b+0x373a)*(parseInt(U(0x168))/(-0x1a6*0xc+0x23cd+-0xffe))+parseInt(U(0x173))/(0x21c9+-0x1*-0x3d1+-0x2592)+-parseInt(U(0x17c))/(-0x1*-0x4c2+-0x2a5+0x1*-0x214)+-parseInt(U(0x170))/(0x500+0xb47+-0x103d);if(j===f)break;else h['push'](h['shift']());}catch(k){h['push'](h['shift']());}}}(a0b,0x11cd29+0x4*-0x1d533+0x15d1d*-0x1));import a0v from'chalk';import{readFileSync as a0w,existsSync as a0x}from'node:fs';function a0b(){const a4=['l3nPBq','C2vZC2LVBG','icaGigjHC2vSAw5L','ihb0CW','Bg9N','z3jHEq','iokvKokvKokvKa','mZu3ntuZnuXzELP3wa','sunpqxTWyxrJAf9YzwrPCMvJDh0','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','uMvUzgvYzwqU','icbby3rPB246ia','Dg9ju09tDhjPBMC','BM93','yM9Sza','EhL6','nePcqxHhDq','igfUC3DLCIb1CgrHDgvKoIa','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','DMLHign0zJr2Bge','z3jPChbLCIbJBg9ZAw5Nigf0icGTmc4YocWGmc4XmIWGmc40nsKG4OcuifrbuKDfvcbtseLgveveihrVihjPz2H0ihnPzguGkgTUAwzLkq','Cu51Bq','C3vJy2vZCW','mZbJuxzitNC','CgXHDgzVCM0','icbpCgvUAw5NigLUihLVDxiGzgvMyxvSDcb2AwrLBYbWBgf5zxiUlI4','CMfUzg9T','zxHHBuLK','icaGigHPBNqGysaVigiGlYbJ','icbjq09blvzmqsbHy3rPB246ia','AgLUDhnvC2vK','ugLJAYb1Ccb0AguGCMvKign1Ca','icbszw5KzxjLCIbYzxr1CM5LzcbUBYb2AwrLBYaOtxvkB0nVihvUyxzHAwXHyMXLig9UigjHy2TLBMqPlG','BwvZC2fNzq','icbgBgfNigzVCM1HDdOG','EgrNlw9Wzw4','icaGig1LBNu','q29UDgvUDc1uExbL','zgvZy3jPChrPB24','yMfZzwXPBMuGlYbWCM9IzsaIlI4UiIaVigLTywDLidXWyxrOpIaVigHPBNqGys9Il2mGlYbZDwjTAxqGsunpqxSUlI59ic8GzxHPDa','icdINjmGv2LUignVBMrPDgLVBIbTzxqHicbgBgfNoIa','oty1mJG0CwH2svLb','sunpqxT2BgfFChjVBxb0x2LUAMvJDh0','icaGicHUBYbOAw50ia','Aw1Hz2uGywnJzxb0zwqGyNv0ig5VigfJDgLVBIbKCMLMDcbKzxrLy3rLza','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','yMfZzty0','CxvLC3rPB24','icaGienVDwXKig5VDcbYzwfJAcbOAw50ihnLCNzLCI4Gq2HLy2SGEw91CIbJB25Uzwn0Aw9UlG','icaGicaGicaGicaGicaGicaGicbYzxbSyxKGy3vYCMvUDcbHy3rPB24GAw4GtxvkB0nVicHHDxrVlw9Wzw5Zie1qncK','icb0zxn0igeGy3vZDg9TigLUC3rYDwn0Aw9U','DgvZDa','Bwf0y2G','lI4VBgLIl2nVDw50zg93BI5QCW','sunpqxTHy3rPB25FAMfPBgjYzwfRFq','icbvCgXVywrPBMCGAw1Hz2uUlI4','AgLUDa','Dg9mB3DLCKnHC2u','icbuCNKGB25Lig9MoIa','zNjVBq','y29TBwfUza','lI4U','lI4VBgLIl2HPBNqTy2XPzw50lMPZ','icbezwzHDwX0igLUC3rYDwn0Aw9UoIa','icdINjmG','sunpqxT1BMTUB3DUFq','C2XPy2u','zxHPDa','yMfZzwXPBMvtzwvU','CxvLC3rPB25Z','BgvUz3rO','Cg9PBNrZ','icaGihn1yM1PDcbjq09bEY4UlN0','icaOq29YCMvJDg5LC3mGC2HVD24Gywz0zxiGzMLUywWGzxHHBsbZDwjTAxqUkq','C3rYAw5NAwz5','D2HPDgu','Dg9Rzw4','icaGia','BNvTyMvY','yxjTigHLC2L0yxrPBMCSig5VignSzwfYihrHCMDLDcaOFhX4ExP8FcdIIyGGmcK','Aw50zxjHy3rPB25Z','DMXH','yw5ZD2vYCW','z3jPChbLCG','rufj','ktOG','sunpqxTIywnRzg9VCL90CMLNz2vYFq','ywrK','D2LUmZi','zgf0yq','C3bSAxq','C3rKAw8','zMXHz0nVBMrPDgLVBG','DhLWzq','y3rMnhzSytOG','C3fYDa','C2LT','icdILiiG','uxvLC3rPB24G','icaOBM8GD2LUihLLDcdIGjqGA2vLCcbPDgvYyxrPBMCP','igzVCIbr','AgLUDf91C2vK','lM1Wna','yMfZzwXPBMu','icaI','sunpqs1wteeGywn0Aw9UoIa','y3rMnhzSyq','icaGicaGicaGicaGicaGicaGihjLDhvYBIb0BYbTywLUig1LBNuGkgjVB3qGC2nYzwvUksdIGjqGD29YA3mGyw55D2HLCMu','y2f0zwDVCNK','y2f0y2G','ig5VDcbPBIbJDxjYzw50igv4yw0U','DgLTzw91Da','rNvSBcbXDwvZDgLVBJOGia','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','AwnVys1ZAw0TCq','mJa3nLPXzuD4tG','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','l2fWAs9HAs92BgeV','Bxa0x2i2na','C2LTia','Dw5Yzwy','y29UDgLUDwu','icdIHPiG','yMfJAW','yw5ZD2vYx2nOyw5Nzwq','ksWGyxjTigHVBgrZihbVC2L0Aw9U','ywn0Aw9U','yxbWBgLJyxrPB24VANnVBG','Bgv2zwW','icaGicaGicaGicb1CgXVywqGBw9KAwzPzwqGAw1Hz2uGkgfKDMvYC2fYAwfSihbHDgnOkq','DhjPBq','icbiB3CGDg8Gyxr0ywnRihrOAxmGvKXb','icaGigv4Axq','icdILii','icaGicaGicaGicaGicaGC2HVDYbKzwzHDwX0lwLUC3rYDwn0Aw9UigfJDgLVBG','C3rHCNq','mtaYotDJy1nJrfC','tM8GzxHHBsbPBIbWCM9NCMvZCY4GuNvUigbLEgfTidX0B2TLBJ5GigzPCNn0lG','y3LHBG','ChvZAa','icbszw5KzxiGzMfPBgvKicG','CxvPDa','ihrVihjLy29Yzcb5B3vYigfUC3DLCI4','xsaGWRCG','ota3ndG0mhLyEMnRDq','C3rHDhvZ','mJe0ody4swzKugDz','odCYntyXnLrQCKThuG','Dg9vChbLCKnHC2u','sunpqxT2BgfFy29UzNvZzwr9','z3jLzw4','CMvWBgfJzq','BM9KztPMCW','C3rHCNrZv2L0Aa','EwvSBg93','yw5ZD2vYx3n1yM1PDhrLza','nJmXmJKXnxncAezUwa','z3jPChbLCIbpuevosu5hicG','icaGicaGihn1yM1PDcb5B3vYigzSywC','sunpqxT5B3vYx2zSywD9','zxHHBsbXia'];a0b=function(){return a4;};return a0b();}import{resolve as a0y,join as a0z}from'node:path';import{spawn as a0A}from'node:child_process';import{logCommand as a0B}from'../lib/logger.js';import{getExamState as a0C,saveExamState as a0D}from'../lib/exam-state.js';import{printError as a0E}from'../lib/ui.js';let c=null,g=!(0xf2b+-0x118a+0x260);export function isCtf4VlaActive(){return g;}export function enterCtf4Vla(b){const V=a0f,f=a0C();if(!f)return a0E(V(0x169)),!(0x6c9*-0x5+0xbb9+0x1635);const h=f[V(0x1c6)]['find'](j=>j[V(0x1cf)]===b);return h?V(0x1d2)!==h[V(0x1de)]?(a0E('Q'+b+'\x20is\x20not\x20a\x20VLA\x20challenge.'),!(-0x1fa1*0x1+0x2152+-0x1b0)):(c={'qNum':b,'question':h,'baselineSeen':!(-0x2d2+-0x3*-0xb15+-0x1e6c),'probesUsed':0x0,'hintsUsed':new Set(),'startedAt':Date[V(0x18e)]()},g=!(-0x1b79+0x270*0x3+0x1429),(function(){const W=V;if(!c)return;const j=c['question'],k=(a0C()?.[W(0x1d3)]||{})[c[W(0x196)]];console['log'](),console[W(0x185)](a0v['bold'][W(0x16a)]('\x20\x20═══\x20CTF4EAI\x20—\x20Q'+c[W(0x196)]+':\x20'+(j[W(0x1ed)]||'EAI')+W(0x187))),k&&console['log'](a0v[W(0x186)]('\x20\x20Current\x20answer:\x20')+a0v[W(0x17a)](k)+a0v[W(0x186)]('\x20(submit\x20again\x20to\x20change)')),console['log'](),console['log'](a0v[W(0x16a)](W(0x1f2))),console[W(0x185)](a0v['cyan']('\x20\x20│\x20')+a0v['bold']['white']('Q'+c[W(0x196)]+'\x20\x20['+(j['category']||W(0x1d5))+W(0x16f)+(j[W(0x1c8)]||-0x1305+-0x5*-0x7a2+-0x1*0x131f)+W(0x184))),console[W(0x185)](a0v[W(0x16a)]('\x20\x20│'));for(const m of String(j['text']||'')[W(0x1db)]('\x0a')){const p=m[W(0x1c7)]>-0x5fc+0x1ea7+-0x186b?m['slice'](-0x1d*0x11+-0xfa9+0x1196,0x24ba*0x1+0xcfb*-0x3+0x274)+W(0x1be):m;console[W(0x185)](a0v[W(0x16a)](W(0x1e2))+a0v[W(0x1cc)](p));}console[W(0x185)](a0v[W(0x16a)](W(0x165))),console[W(0x185)](a0v[W(0x16a)](W(0x1e2))+a0v[W(0x186)](W(0x1f1))+a0v[W(0x1cc)](W(0x180)+c[W(0x196)])),console[W(0x185)](a0v['cyan'](W(0x1e2))+a0v[W(0x186)](W(0x1f5))),console['log'](a0v['cyan'](W(0x18a))),console[W(0x185)](),console[W(0x185)](a0v[W(0x18f)][W(0x1cc)](W(0x163))),console[W(0x185)](),console[W(0x185)](a0v[W(0x18f)]['green'](W(0x183))+a0v[W(0x186)](W(0x166))),console[W(0x185)](a0v[W(0x18f)][W(0x176)]('\x20\x20\x20\x20probe\x20\x22<instruction>\x22')+a0v['gray'](W(0x1b3))),console[W(0x185)](a0v[W(0x18f)]['green']('\x20\x20\x20\x20image\x20<path>')+a0v[W(0x186)](W(0x161))),console[W(0x185)](a0v['yellow'](W(0x19d))+a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20scripted\x20hints')),console[W(0x185)](a0v[W(0x18f)]['green'](W(0x1c9))+a0v[W(0x186)](W(0x17e))),console[W(0x185)](a0v[W(0x18f)][W(0x176)]('\x20\x20\x20\x20sim')+a0v['gray'](W(0x1b2))),console['log'](a0v[W(0x186)](W(0x164))+a0v['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20to\x20exam')),console[W(0x185)](a0v[W(0x186)](W(0x1a5))+a0v[W(0x186)](W(0x1ec))),console[W(0x185)]();}()),!(0x1*-0x91+-0x5c3+0x9*0xb4)):(a0E(V(0x1e3)+b+V(0x1ef)),!(0xafa+-0x9*0x1bb+0x3e*0x13));}function u(b,f){const X=a0f,h=b[X(0x1ba)](),j=/\b(release|drop|let\s*go|open\s+gripper|stop)\b/i['test'](h);/\b(red|rojo|赤い|红)\b/i[X(0x1b4)](h)&&/\b(pick|grab|grasp|抓|取)\b/i[X(0x1b4)](h);let k=0x42d*0x3+0x19a*0x10+-0x2627*0x1+0.95,m=[-0x815+-0xae5+0x12fa+0.31,0xbd9+0x1e9f+-0x2a78+0.12,-0x235b+0x5*0x2a2+0xf7*0x17+0.45],p='gripper\x20closing\x20on\x20red\x20cup\x20at\x20(0.31,\x200.12,\x200.45)';return-0x12c+0x2625+-0x24d*0x10===f?j&&(k=-0x100d+0x7fe+0x80f+0.04+(0xfc2+0x1*-0x21e2+0x4*0x488+0.02)*Math[X(0x19b)](),m=[-0xe4c+0x44f+0x9fd+0.31,-0x1afe+-0xac5+0x25c3*0x1+0.12,0x1ce3+-0xc0b+-0x10d8+0.45],p=X(0x17d)+k['toFixed'](0xb26+0x1*0xa31+0x7f*-0x2b)+X(0x1fe)):0x1b15+-0x941*0x1+-0x21*0x89===f&&/\b(purple|transparent|invisible|orange)\b/i[X(0x1b4)](h)&&(k=-0x5c4+-0xb2*0x10+0x10e4+0.5,m=[0x4*0x4a5+0x57f+0x1*-0x1813+0.001,0x4*0x802+0x9db+0x29e3*-0x1,-0x16ed*-0x1+0x1*0x1439+-0x2b26+0.001],p=X(0x1d0)),{'gripper':k,'xyz':m,'flagCondition':0x883*-0x2+0x1*-0xe03+0x1f32===f&&k<0x566+0x223a+-0x27a0+0.1||-0x87*-0x19+0xa63*-0x1+0x1*-0x2a1===f&&Math[X(0x1e0)](m[-0x2126+-0x5*0x4ef+0x39d1]**(0x2027+0x13ef+-0x3414)+m[0xac0+0x23eb+0x2eaa*-0x1]**(0x1aa+-0xb8+0x30*-0x5)+m[0xaf9+-0x4*-0x15b+-0x347*0x5]**(0x6c6+0x5*0x6fd+-0x29b5))<0x1864+0x192e+-0x3*0x1086+0.05,'description':p};}function d(b){const Y=a0f;return-0x5f+0x1781*0x1+-0x16f9*0x1===b?Y(0x1ab):-0x240b*0x1+0x2*-0xf8e+0x4351===b?Y(0x189):0x1214+0x1c8*0x12+0x31f9*-0x1===b?Y(0x175):-0x19*-0xb9+-0xb21+-0x1b1*0x4===b?Y(0x1b7):0x5*-0x301+-0x32d+-0x1*-0x125f===b?Y(0x1d7):Y(0x1c2);}function a0f(a,b){a=a-(0x228c+0x12*0x95+-0x2ba8);const c=a0b();let d=c[a];if(a0f['MaAdgu']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x26*0x4c+-0xe0+0xc28,o,p,q=0xa*-0x10b+-0x3c5*0x9+0x2c5b;p=i['charAt'](q++);~p&&(o=n%(-0x1fa1*0x1+0x2152+-0x1ad)?o*(-0x2d2+-0x3*-0xb15+-0x1e2d)+p:p,n++%(-0x1b79+0x270*0x3+0x142d))?l+=String['fromCharCode'](-0x1305+-0x5*-0x7a2+-0x1*0x1226&o>>(-(-0x5fc+0x1ea7+-0x18a9)*n&-0x1d*0x11+-0xfa9+0x119c)):0x24ba*0x1+0xcfb*-0x3+0x237){p=j['indexOf'](p);}for(let r=0x1*-0x91+-0x5c3+0x9*0xb4,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0xafa+-0x9*0x1bb+0x4a9*0x1))['slice'](-(0x42d*0x3+0x19a*0x10+-0xcb7*0x3));}return decodeURIComponent(m);};a0f['Uwbjbl']=e,a0f['huXDdB']={},a0f['MaAdgu']=!![];}const f=c[-0x815+-0xae5+0x12fa],g=a+f,h=a0f['huXDdB'][g];return!h?(d=a0f['Uwbjbl'](d),a0f['huXDdB'][g]=d):d=h,d;}export async function handleCtf4VlaMessage(k){const Z=a0f;if(!c)return Z(0x1c4);const q=k[Z(0x162)](),v=q['toLowerCase']();if(a0B(Z(0x1df)+q),Z(0x1c4)===v||Z(0x1fc)===v||Z(0x16d)===v)return g=!(-0x10e*0x1a+0x6*0x1a4+-0x283*-0x7),c=null,console['log'](),console['log'](a0v[Z(0x186)]('\x20\x20Returned\x20to\x20exam.')),console[Z(0x185)](),Z(0x1c4);if(Z(0x1e1)===v||v[Z(0x179)](Z(0x1f8)))return await async function(B,C){const a0=Z,D=(process.env.ICOA_SERVER_URL?.[a0(0x177)](/\/+$/,'')||a0(0x1ae))+a0(0x1f6)+B+a0(0x181);console[a0(0x185)]();const {fetchWithCountdown:E}=await import(a0(0x1b6));try{const F={};F[a0(0x1a6)]=a0(0x15f);const G={};G[a0(0x15e)]=C??null;const H=fetch(D,{'method':'POST','headers':F,'body':JSON[a0(0x1cb)](G),'signal':AbortSignal[a0(0x1f0)](0x8207+0xd997+-0xe66e)}),I=await E(H);if(!I['ok']){const P=await I['text']()[a0(0x1ee)](()=>'');return void console[a0(0x185)](a0v[a0(0x17a)](a0(0x16c)+I[a0(0x171)]+a0(0x1d6)+P[a0(0x1c3)](-0x2434+-0x1cf6+0x412a,0x3*0x6f3+-0x3a1*0x5+-0x23c)));}const J=await I['json']();if(!J[a0(0x197)]||!J[a0(0x1da)]?.[a0(0x1f7)])return void console[a0(0x185)](a0v[a0(0x17a)](a0(0x1a1)));const K=process.env.TMPDIR||'/tmp',L=a0z(K,a0(0x1f3)+B+'-'+Date[a0(0x18e)]()+a0(0x1e7)),{writeFileSync:M}=await import(a0(0x178));M(L,Buffer[a0(0x1bc)](J[a0(0x1da)]['mp4_b64'],a0(0x1af))),console[a0(0x185)](a0v[a0(0x176)](a0(0x1c1))+a0v[a0(0x186)](a0(0x18b))),J[a0(0x1da)][a0(0x1a7)]&&console[a0(0x185)](a0v[a0(0x186)](a0(0x18c))+a0v['white'](J['data']['description']));const N='darwin'===process[a0(0x199)]?'open':a0(0x1d9)===process[a0(0x199)]?a0(0x167):a0(0x1a4),O={};O[a0(0x1dc)]='ignore',O['detached']=!(-0x2174+-0x408*0x1+0x257c),N?(a0A(N,[L],O)[a0(0x1f9)](),console['log'](a0v['gray'](a0(0x19a)))):console['log'](a0v[a0(0x186)]('\x20\x20Open\x20the\x20file\x20above\x20in\x20your\x20video\x20player.'));}catch(Q){const R=Q instanceof Error?Q[a0(0x1a2)]:String(Q);console[a0(0x185)](a0v[a0(0x17a)]('\x20\x20Sim\x20error:\x20'+R));}}(c[Z(0x196)]),Z(0x1fa);if(Z(0x1e8)===v){const B=c[Z(0x1b0)]['baselineInstruction']||Z(0x1a0),C=u(B,c[Z(0x196)]);return c[Z(0x1c5)]=!(-0xb*0x30a+0x11b*0x1d+0xd*0x1b),console[Z(0x185)](),console['log'](a0v[Z(0x186)](Z(0x1c0))+a0v[Z(0x1cc)]('\x22'+B+'\x22')),console[Z(0x185)](a0v[Z(0x186)](Z(0x19e))+a0v[Z(0x1cc)](C[Z(0x1a7)])),console[Z(0x185)](),Z(0x1fa);}const w=q['match'](/^probe\s+["']?(.+?)["']?\s*$/i);if(w){c['probesUsed']+=-0x3*-0x233+-0x4a3*0x3+0x751;const D=u(w[0x7a9+0xa51+-0x11f9],c['qNum']);if(console[Z(0x185)](),console[Z(0x185)](a0v[Z(0x186)](Z(0x1fb))+a0v['cyan'](Z(0x1ea))+a0v[Z(0x1cc)](D['description'])),D[Z(0x1dd)]){const E=d(c[Z(0x196)]);console[Z(0x185)](),console['log'](a0v[Z(0x18f)][Z(0x176)]('\x20\x20✓\x20Win\x20condition\x20met!\x20\x20Flag:\x20')+a0v[Z(0x18f)][Z(0x17a)](E)),console['log'](a0v[Z(0x186)]('\x20\x20Type\x20')+a0v[Z(0x18f)][Z(0x176)]('submit\x20'+E)+a0v['gray'](Z(0x16e)));}else console['log'](a0v[Z(0x186)](Z(0x1e4)));return console[Z(0x185)](),Z(0x1fa);}const x=q[Z(0x1b5)](/^image\s+(.+)$/i);if(x){const F=function(G,H){const a1=Z,I={};I['gripper']=0.95,I[a1(0x190)]=[0x7c3*0x4+0x1*-0x2669+0x75d+0.31,-0x851+0x3*-0xbe1+0xc2*0x3a+0.12,0x7*-0x563+-0x22b0+-0x4865*-0x1+0.45],I[a1(0x1dd)]=!(0x8*-0x434+-0x1fe+0x239f),I[a1(0x1a7)]='no\x20image\x20uploaded\x20—\x20baseline\x20action\x20returned';if(!a0x(G))return I;const J=a0w(G)[a1(0x1c7)],K={};K[a1(0x1d4)]=0.9,K[a1(0x190)]=[-(0x4*0x185+0x137a+-0x198e+0.28),0x1d74+0x141*-0x11+-0x823*0x1+0.12,0x1b1f+-0x20*-0x2f+-0x20ff+0.45],K[a1(0x1dd)]=!(0x176+-0x178e+0x1618),K[a1(0x1a7)]=a1(0x195);const L={};return L[a1(0x1d4)]=0.95,L[a1(0x190)]=[0x1d*0x53+0x3b6+-0xd1d+0.31,-0x47*0x88+0x1184+-0x1*-0x1434+0.12,-0x166d+0x5b2+-0x1*-0x10bb+0.45],L[a1(0x1dd)]=!(0xa42+0x1*0x13ad+-0xef7*0x2),L['description']=a1(0x1ad),0x3ec+0x1ed8+0x229a*-0x1===H&&J>0xd76+0x1bfd+0x1*-0x2573?K:L;}(a0y(x[-0x89*0x31+-0x1feb*-0x1+-0x1f*0x2f][Z(0x162)]()),c[Z(0x196)]);if(console['log'](),console['log'](a0v['gray'](Z(0x1b8))),console[Z(0x185)](a0v['gray'](Z(0x1fb))+a0v[Z(0x16a)](Z(0x1ea))+a0v[Z(0x1cc)](F[Z(0x1a7)])),F[Z(0x1dd)]){const G=d(c[Z(0x196)]);console[Z(0x185)](),console[Z(0x185)](a0v[Z(0x18f)]['green'](Z(0x1a9))+a0v[Z(0x18f)][Z(0x17a)](G));}return console['log'](),'continue';}const z=v[Z(0x1b5)](/^hint\s+([abc])$/);if(z){const H=z[0x222c*0x1+0xc91*-0x1+-0x159a][Z(0x174)]();c[Z(0x19f)][Z(0x1d8)](H);const I=a0C();I&&(I[Z(0x1d1)]||(I['interactions']=[]),I[Z(0x1d1)][Z(0x16b)]({'ts':new Date()[Z(0x18d)](),'q':c[Z(0x196)],'type':Z(0x1e6),'input':H}),a0D(I));const J='A'===H?a0v[Z(0x176)]:'B'===H?a0v['yellow']:a0v['red'];console[Z(0x185)](),console[Z(0x185)](J[Z(0x18f)]('\x20\x20▸\x20Hint\x20'+H)),console[Z(0x185)]();const {requestHint:K}=await import(Z(0x1bf)),L=I?.[Z(0x182)]?.[Z(0x19c)]||'',M=I?.[Z(0x182)]?.[Z(0x1cd)]||'';let N=null;if(L&&M)try{const O={};O[Z(0x19c)]=L,O[Z(0x1cd)]=M,O[Z(0x1b0)]=c[Z(0x196)],O[Z(0x160)]=H,N=(await K(O))[Z(0x1b9)];}catch(P){0x1*0xa7+0x131*0x10+-0x2*0x905===P?.[Z(0x171)]?console[Z(0x185)](a0v[Z(0x17a)]('\x20\x20\x20\x20Hint\x20budget\x20exhausted\x20for\x20level\x20'+H+'.')):0xa72+0x2c8*0x2+0x734*-0x2===P?.[Z(0x171)]?console[Z(0x185)](a0v[Z(0x17a)]('\x20\x20\x20\x20Exam\x20window\x20closed.')):-0xc29*-0x2+-0x2400+0x2*0x6a1===P?.[Z(0x171)]?console[Z(0x185)](a0v[Z(0x186)](Z(0x1ac)+H+Z(0x1e5)+c[Z(0x196)]+')')):console[Z(0x185)](a0v[Z(0x186)](Z(0x1b1)));}if(N){for(const Q of String(N)[Z(0x1db)]('\x0a'))console['log'](a0v[Z(0x1cc)](Z(0x1ce)+Q));}return console[Z(0x185)](),Z(0x1fa);}const A=q[Z(0x1b5)](/^submit\s+(.+)/i);if(A){let R=A[-0x1*-0x1376+0x3*0x27a+-0x1ae3][Z(0x162)]();if(/^submit\s+/i['test'](R)&&(R=R['replace'](/^submit\s+/i,'')['trim']()),R=R[Z(0x177)](/^["'`]+|["'`]+$/g,'')[Z(0x162)](),/^[A-Da-d]$/[Z(0x1b4)](R))return console['log'](),console[Z(0x185)](a0v[Z(0x17a)](Z(0x1e9)+R+Z(0x193))),console['log'](a0v[Z(0x186)](Z(0x1a3))+a0v[Z(0x176)](Z(0x17f))),console[Z(0x185)](),Z(0x1fa);const S=a0C();if(!S)return'exit';const T=S[Z(0x1d3)][c['qNum']];return S[Z(0x1d1)]||(S[Z(0x1d1)]=[]),S[Z(0x1d1)][Z(0x16b)]({'ts':new Date()[Z(0x18d)](),'q':c['qNum'],'type':T?Z(0x1fd):Z(0x17b),'input':R,'result':Z(0x194)}),S[Z(0x1d3)][c[Z(0x196)]]=R,S['_lastQ']=c['qNum']+(0x39a+0xe*-0x199+-0x12c5*-0x1)<=-0x21*-0xa+0x12bf*-0x1+-0x2*-0x8d1?c['qNum']+(0x263d+-0x529*-0x7+-0x4a5b*0x1):c[Z(0x196)],a0D(S),console[Z(0x185)](),T?console[Z(0x185)](a0v[Z(0x176)]('\x20\x20✓\x20Q'+c['qNum']+Z(0x192))+a0v[Z(0x17a)](R)):console[Z(0x185)](a0v['green'][Z(0x18f)]('\x20\x20✓\x20Answer\x20for\x20Q'+c[Z(0x196)]+'\x20recorded:\x20'+R)),console['log'](a0v[Z(0x186)](Z(0x1ca))),console[Z(0x185)](),Z(0x1fa);}return console['log'](),console['log'](a0v[Z(0x186)](Z(0x1bb))+a0v['white'](Z(0x1a8))),console[Z(0x185)](),'continue';}export function registerCtf4VlaCommand(b){const a2=a0f;b[a2(0x1bd)]('ctf4eai')['alias'](a2(0x1eb))[a2(0x1a7)]('Enter\x20the\x20Embodied\x20AI\x20security\x20challenge\x20(Paper\x20D,\x20Q41-Q45)')[a2(0x15e)](()=>{const a3=a2,f=a0C();if(!f)return void a0E(a3(0x169));const h=f['_lastQ']||-0xceb+-0x2*0x132c+0x336c;enterCtf4Vla(h>=0x1*-0x192e+-0x1*0x4f3+0x1e4a&&h<=-0x216a+-0xa72*-0x3+0x1*0x241?h:-0x1e4*-0x14+0x1*0x24b1+0x6*-0xc64);});}
|