{
 "version": "0.1",
 "type": "container",
 "meta": {
  "trigger": "cli",
  "system_resources": {
   "required_vram": 20
  }
 },
 "ops": [
  {
   "type": "container/run",
   "id": "train-ronde4-v1",
   "args": {
    "image": "docker.io/pytorch/pytorch:2.8.0-cuda12.8-cudnn9-runtime",
    "gpu": true,
    "cmd": [
     "/bin/bash",
     "-c",
     "set -x; mkdir -p /workspace/appimundo-ai /nosana/outputs; exec > >(tee -a /workspace/appimundo-ai/job.log) 2>&1 && cd /workspace/appimundo-ai && python3 -c \"import urllib.request,zipfile,time; url='https://appimundo-ai-lab.pages.dev/appimundo-ai-code-data.json'; exec(\\\"for poging in range(5):\\n try:\\n  req=urllib.request.Request(url,headers={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'}); data=urllib.request.urlopen(req,timeout=120).read(); open('code.zip','wb').write(data); print('Pakket opgehaald:',len(data),'bytes',flush=True); break\\n except Exception as e:\\n  print('Poging mislukt:',e,flush=True); time.sleep(10)\\nelse: raise SystemExit('ophalen mislukt')\\n\\\"); zipfile.ZipFile('code.zip').extractall('.'); print('Uitgepakt',flush=True)\" && python3 -m pip install -q paramiko && python3 -c \"import base64,subprocess;open('/workspace/appimundo-ai/shipper.py','w').write(base64.b64decode('CgppbXBvcnQgb3MsIGJhc2U2NCwgdGltZQppbXBvcnQgcGFyYW1pa28Kb3BlbigiL3RtcC91cGtleSIsIndiIikud3JpdGUoYmFzZTY0LmI2NGRlY29kZSgiTFMwdExTMUNSVWRKVGlCUFVFVk9VMU5JSUZCU1NWWkJWRVVnUzBWWkxTMHRMUzBLWWpOQ2JHSnVUbnBoUXpGeVdsaHJkR1JxUlVGQlFVRkJRa2MxZG1KdFZVRkJRVUZGWW0wNWRWcFJRVUZCUVVGQlFVRkJRa0ZCUVVGTmQwRkJRVUYwZW1NeVozUmFWd3BSZVU1VVZYaFBVVUZCUVVOQlRVdEVRakJUVW1VdlpYbElUakpvWW01eE1tOXZaRmgyTVd4WGRWaDFOakJIT1dKc2RHbFVjM2RsUVVGQlFVcERTV3BQTW01cFNYcDBDbkIzUVVGQlFYUjZZekpuZEZwWFVYbE9WRlY0VDFGQlFVRkRRVTFMUkVJd1UxSmxMMlY1U0U0eWFHSnVjVEp2YjJSWWRqRnNWM1ZZZFRZd1J6bGliSFJwVkhOM1pVRUtRVUZCUlVGSmF6aFJVV1pJVVRSRVlsbHNibEZoYmpCWGVsQnBOV0p6VjJ0RVFtODVZVXN5YlRCdE1WQmtSRWRuZDI5TlNGSktSamM1TjBsak0yRkdkV1Z5WVdsb01RcGxMMWRXWVRWbE4zSlJZakYxVnpKS1QzcENORUZCUVVGRGJURjJXa2RXYzJGWE5IUmphbEZDUVdkTlBRb3RMUzB0TFVWT1JDQlBVRVZPVTFOSUlGQlNTVlpCVkVVZ1MwVlpMUzB0TFMwSyIpKQpvcy5jaG1vZCgiL3RtcC91cGtleSIsMG82MDApCndoaWxlIFRydWU6CiAgICB0cnk6CiAgICAgICAgc3NoPXBhcmFtaWtvLlNTSENsaWVudCgpOyBzc2guc2V0X21pc3NpbmdfaG9zdF9rZXlfcG9saWN5KHBhcmFtaWtvLkF1dG9BZGRQb2xpY3koKSkKICAgICAgICBzc2guY29ubmVjdCgiOTIuNS43MS4xNDciLHVzZXJuYW1lPSJtb2RlbGluIixrZXlfZmlsZW5hbWU9Ii90bXAvdXBrZXkiLHRpbWVvdXQ9MzApCiAgICAgICAgcz1zc2gub3Blbl9zZnRwKCkKICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cygiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIpOgogICAgICAgICAgICBzLnB1dCgiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIsIi9ob21lL21vZGVsaW4vaW5jb21pbmctcjQvam9iLWxvZy50eHQiKQogICAgICAgIHMuY2xvc2UoKTsgc3NoLmNsb3NlKCkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcGFzcwogICAgdGltZS5zbGVlcCgxMjApCg==').decode());subprocess.Popen(['python3','/workspace/appimundo-ai/shipper.py'],stdout=open('/dev/null','w'),stderr=subprocess.STDOUT)\" && python3 -c \"import base64;exec(base64.b64decode('CgppbXBvcnQganNvbiBhcyBKCnRyeToKICAgIGltcG9ydCB0b3JjaCBhcyBfdAogICAgX21lbSA9IF90LmN1ZGEuZ2V0X2RldmljZV9wcm9wZXJ0aWVzKDApLnRvdGFsX21lbW9yeS8xZTkgaWYgX3QuY3VkYS5pc19hdmFpbGFibGUoKSBlbHNlIDAKZXhjZXB0IEV4Y2VwdGlvbjoKICAgIF9tZW0gPSAwCmMgPSBKLmxvYWQob3BlbigiY29uZmlnLmpzb24iKSkKY1siYmFzaXNtb2RlbCJdID0gIi93b3Jrc3BhY2UvYXBwaW11bmRvLWFpL3JvbmRlMi1zdGFydCIKY1sidGFsZW5wYXJlbiJdID0gW3siYSI6ICJubCIsICJiIjogInB0IiwgIm1heF9wYXJlbiI6IDMwMDAwfSwgeyJhIjogImVuIiwgImIiOiAicHQiLCAibWF4X3BhcmVuIjogMjAwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJqYSIsICJtYXhfcGFyZW4iOiAyMDAwMH0sIHsiYSI6ICJlbiIsICJiIjogImphIiwgIm1heF9wYXJlbiI6IDE1MDAwfSwgeyJhIjogIm5sIiwgImIiOiAia28iLCAibWF4X3BhcmVuIjogNjAwMH0sIHsiYSI6ICJubCIsICJiIjogImhyIiwgIm1heF9wYXJlbiI6IDYwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJzbCIsICJtYXhfcGFyZW4iOiA2MDAwfSwgeyJhIjogIm5sIiwgImIiOiAibHQiLCAibWF4X3BhcmVuIjogNjAwMH0sIHsiYSI6ICJubCIsICJiIjogImx2IiwgIm1heF9wYXJlbiI6IDYwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJldCIsICJtYXhfcGFyZW4iOiA2MDAwfSwgeyJhIjogIm5sIiwgImIiOiAiY2EiLCAibWF4X3BhcmVuIjogNjAwMH0sIHsiYSI6ICJubCIsICJiIjogImJuIiwgIm1heF9wYXJlbiI6IDYwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJtciIsICJtYXhfcGFyZW4iOiA2MDAwfSwgeyJhIjogIm5sIiwgImIiOiAiYXoiLCAibWF4X3BhcmVuIjogNjAwMH0sIHsiYSI6ICJubCIsICJiIjogInNxIiwgIm1heF9wYXJlbiI6IDYwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJ1ciIsICJtYXhfcGFyZW4iOiA2MDAwfSwgeyJhIjogIm5sIiwgImIiOiAiaHkiLCAibWF4X3BhcmVuIjogNjAwMH0sIHsiYSI6ICJubCIsICJiIjogImthIiwgIm1heF9wYXJlbiI6IDYwMDB9LCB7ImEiOiAibmwiLCAiYiI6ICJrbSIsICJtYXhfcGFyZW4iOiA2MDAwfSwgeyJhIjogImVuIiwgImIiOiAia28iLCAibWF4X3BhcmVuIjogNTAwMH0sIHsiYSI6ICJlbiIsICJiIjogImhyIiwgIm1heF9wYXJlbiI6IDUwMDB9LCB7ImEiOiAiZW4iLCAiYiI6ICJzbCIsICJtYXhfcGFyZW4iOiA1MDAwfSwgeyJhIjogImVuIiwgImIiOiAibHQiLCAibWF4X3BhcmVuIjogNTAwMH0sIHsiYSI6ICJlbiIsICJiIjogImx2IiwgIm1heF9wYXJlbiI6IDUwMDB9LCB7ImEiOiAiZW4iLCAiYiI6ICJldCIsICJtYXhfcGFyZW4iOiA1MDAwfSwgeyJhIjogImVuIiwgImIiOiAiY2EiLCAibWF4X3BhcmVuIjogNTAwMH0sIHsiYSI6ICJlbiIsICJiIjogImJuIiwgIm1heF9wYXJlbiI6IDUwMDB9LCB7ImEiOiAiZW4iLCAiYiI6ICJtciIsICJtYXhfcGFyZW4iOiA1MDAwfSwgeyJhIjogImVuIiwgImIiOiAiYXoiLCAibWF4X3BhcmVuIjogNTAwMH0sIHsiYSI6ICJlbiIsICJiIjogInNxIiwgIm1heF9wYXJlbiI6IDUwMDB9LCB7ImEiOiAiZW4iLCAiYiI6ICJ1ciIsICJtYXhfcGFyZW4iOiA1MDAwfSwgeyJhIjogImVuIiwgImIiOiAiaHkiLCAibWF4X3BhcmVuIjogNTAwMH0sIHsiYSI6ICJlbiIsICJiIjogImthIiwgIm1heF9wYXJlbiI6IDUwMDB9LCB7ImEiOiAiZW4iLCAiYiI6ICJrbSIsICJtYXhfcGFyZW4iOiA1MDAwfSwgeyJhIjogIm5sIiwgImIiOiAiZW4iLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInJvIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJiZyIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiZWwiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInN2IiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJkYSIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiZmkiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogImNzIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJodSIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAic3IiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogIm1rIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJoZSIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiZnIiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogImRlIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJlcyIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiaXQiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogImFyIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJ0ciIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAidWsiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInJ1IiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJoaSIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAidGgiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInZpIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJsbyIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAibXkiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInRsIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJubyIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiemgiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJubCIsICJiIjogInBsIiwgIm1heF9wYXJlbiI6IDI1MDB9LCB7ImEiOiAibmwiLCAiYiI6ICJmYSIsICJtYXhfcGFyZW4iOiAyNTAwfSwgeyJhIjogIm5sIiwgImIiOiAiaWQiLCAibWF4X3BhcmVuIjogMjUwMH0sIHsiYSI6ICJlbiIsICJiIjogInJvIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJiZyIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiZWwiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogInN2IiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJkYSIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiZmkiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogImNzIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJodSIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAic3IiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogIm1rIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJoZSIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiZnIiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogImRlIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJlcyIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiaXQiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogImFyIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJ0ciIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAidWsiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogInJ1IiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJoaSIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAidGgiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogInZpIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJsbyIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAibXkiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogInRsIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJubyIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiemgiLCAibWF4X3BhcmVuIjogMTc1MH0sIHsiYSI6ICJlbiIsICJiIjogInBsIiwgIm1heF9wYXJlbiI6IDE3NTB9LCB7ImEiOiAiZW4iLCAiYiI6ICJmYSIsICJtYXhfcGFyZW4iOiAxNzUwfSwgeyJhIjogImVuIiwgImIiOiAiaWQiLCAibWF4X3BhcmVuIjogMTc1MH1dCmNbInRyYWluaW5nIl1bImxlYXJuaW5nX3JhdGUiXSA9IDJlLTA1CmNbInRyYWluaW5nIl1bImJhdGNoX3Blcl9ncHUiXSA9IDE2IGlmIF9tZW0gPj0gMzAgZWxzZSA4CmNbInRyYWluaW5nIl1bImdyYWRpZW50X2FjY3VtdWxhdGlvbiJdID0gMiBpZiBfbWVtID49IDMwIGVsc2UgNApjWyJ0cmFpbmluZyJdWyJiZXdhYXJfZWxrZV9zdGFwcGVuIl0gPSAxMDAwCkouZHVtcChjLCBvcGVuKCJjb25maWcuanNvbiIsInciKSwgZW5zdXJlX2FzY2lpPUZhbHNlLCBpbmRlbnQ9MSkKcHJpbnQoIlI0LWNvbmZpZyBnZXpldDogUFQtQnJhemlsaWUgKyBKQSArIG9yYW5qZSArIGhlcmhhbGluZyB8IHN0YXJ0bW9kZWw9cm9uZGUyIHwgR1BVKEdCKToiLCByb3VuZChfbWVtLDEpLCBmbHVzaD1UcnVlKQo='))\" && python3 -c \"import urllib.request,os,time; base='https://tba-conferencing-investigator-pcs.trycloudflare.com/'; bestanden=['model.safetensors','config.json','generation_config.json','sentencepiece.bpe.model','vocab.json','tokenizer_config.json','special_tokens_map.json','added_tokens.json']; os.makedirs('ronde2-start',exist_ok=True); [exec(\\\"for p in range(6):\\n try:\\n  req=urllib.request.Request(base+f,headers={'User-Agent':'Mozilla/5.0'}); data=urllib.request.urlopen(req,timeout=900).read(); open('ronde2-start/'+f,'wb').write(data); print('startmodel-bestand',f,len(data),flush=True); break\\n except Exception as e:\\n  print('download opnieuw',f,e,flush=True); time.sleep(15)\\nelse: raise SystemExit('startmodel download mislukt: '+f)\\\") for f in bestanden]; print('STARTMODEL RONDE 2 VOLLEDIG BINNEN',flush=True)\" && python3 -m pip install -q --upgrade \"torch==2.8.0\" --index-url https://download.pytorch.org/whl/cu128 2>&1 | tail -1 || true && mkdir -p data && python3 -c \"import urllib.request,os,time; base='https://tba-conferencing-investigator-pcs.trycloudflare.com/'; [exec(\\\"for p in range(6):\\n try:\\n  req=urllib.request.Request(base+f,headers={'User-Agent':'Mozilla/5.0'}); data=urllib.request.urlopen(req,timeout=900).read(); open('data/'+f,'wb').write(data); print('data-bestand',f,len(data),flush=True); break\\n except Exception as e:\\n  print('data-download opnieuw',f,e,flush=True); time.sleep(15)\\nelse: raise SystemExit('data download mislukt')\\\") for f in ['train.jsonl','val.jsonl','test.jsonl']]; print('ALLE TRAININGSDATA BINNEN',flush=True)\" && sed -i \"s/^python3 data_prepare.py/echo DATA KANT-EN-KLAAR OVERGESLAGEN/\" run_all.sh && grep -c KANT-EN-KLAAR run_all.sh && bash run_all.sh && python3 -m pip install -q paramiko && python3 -c \"import base64;exec(base64.b64decode('CgppbXBvcnQgb3MsIGJhc2U2NCwgcGFyYW1pa28sIGdsb2IKb3BlbigiL3RtcC91cGtleSIsIndiIikud3JpdGUoYmFzZTY0LmI2NGRlY29kZSgiTFMwdExTMUNSVWRKVGlCUFVFVk9VMU5JSUZCU1NWWkJWRVVnUzBWWkxTMHRMUzBLWWpOQ2JHSnVUbnBoUXpGeVdsaHJkR1JxUlVGQlFVRkJRa2MxZG1KdFZVRkJRVUZGWW0wNWRWcFJRVUZCUVVGQlFVRkJRa0ZCUVVGTmQwRkJRVUYwZW1NeVozUmFWd3BSZVU1VVZYaFBVVUZCUVVOQlRVdEVRakJUVW1VdlpYbElUakpvWW01eE1tOXZaRmgyTVd4WGRWaDFOakJIT1dKc2RHbFVjM2RsUVVGQlFVcERTV3BQTW01cFNYcDBDbkIzUVVGQlFYUjZZekpuZEZwWFVYbE9WRlY0VDFGQlFVRkRRVTFMUkVJd1UxSmxMMlY1U0U0eWFHSnVjVEp2YjJSWWRqRnNWM1ZZZFRZd1J6bGliSFJwVkhOM1pVRUtRVUZCUlVGSmF6aFJVV1pJVVRSRVlsbHNibEZoYmpCWGVsQnBOV0p6VjJ0RVFtODVZVXN5YlRCdE1WQmtSRWRuZDI5TlNGSktSamM1TjBsak0yRkdkV1Z5WVdsb01RcGxMMWRXWVRWbE4zSlJZakYxVnpKS1QzcENORUZCUVVGRGJURjJXa2RXYzJGWE5IUmphbEZDUVdkTlBRb3RMUzB0TFVWT1JDQlBVRVZPVTFOSUlGQlNTVlpCVkVVZ1MwVlpMUzB0TFMwSyIpKQpvcy5jaG1vZCgiL3RtcC91cGtleSIsIDBvNjAwKQpzc2ggPSBwYXJhbWlrby5TU0hDbGllbnQoKTsgc3NoLnNldF9taXNzaW5nX2hvc3Rfa2V5X3BvbGljeShwYXJhbWlrby5BdXRvQWRkUG9saWN5KCkpCnNzaC5jb25uZWN0KCI5Mi41LjcxLjE0NyIsIHVzZXJuYW1lPSJtb2RlbGluIiwga2V5X2ZpbGVuYW1lPSIvdG1wL3Vwa2V5IiwgdGltZW91dD02MCkKc2Z0cCA9IHNzaC5vcGVuX3NmdHAoKQpCQVNFID0gIi9ob21lL21vZGVsaW4vaW5jb21pbmctcjQiCmRlZiBwdXRkaXIobG9jYWwsIHJlbW90ZSk6CiAgICB0cnk6IHNmdHAubWtkaXIocmVtb3RlKQogICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzcwogICAgZm9yIG4gaW4gc29ydGVkKG9zLmxpc3RkaXIobG9jYWwpKToKICAgICAgICBscCA9IG9zLnBhdGguam9pbihsb2NhbCwgbik7IHJwID0gcmVtb3RlICsgIi8iICsgbgogICAgICAgIGlmIG9zLnBhdGguaXNkaXIobHApOiBwdXRkaXIobHAsIHJwKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNmdHAucHV0KGxwLCBycCk7IHByaW50KCJVUExPQUQgT0siLCBycCwgb3MucGF0aC5nZXRzaXplKGxwKSwgZmx1c2g9VHJ1ZSkKZm9yIGxva2FhbCwgcmVtb3RlIGluIFsoIm1vZGVsLWFwcGltdW5kbyIsIm1vZGVsLWFwcGltdW5kby1yNCIpLCAoIm1vZGVsLWFwcGltdW5kby1jdDIiLCJtb2RlbC1hcHBpbXVuZG8tY3QyLXI0IildOgogICAgcCA9ICIvbm9zYW5hL291dHB1dHMvIiArIGxva2FhbAogICAgaWYgb3MucGF0aC5pc2RpcihwKTogcHV0ZGlyKHAsIEJBU0UgKyAiLyIgKyByZW1vdGUpCmlmIG9zLnBhdGguZXhpc3RzKCIvbm9zYW5hL291dHB1dHMvZXZhbHVhdGllLnR4dCIpOgogICAgc2Z0cC5wdXQoIi9ub3NhbmEvb3V0cHV0cy9ldmFsdWF0aWUudHh0IiwgQkFTRSArICIvZXZhbHVhdGllLnR4dCIpOyBwcmludCgiVVBMT0FEIE9LIGV2YWx1YXRpZS50eHQiLCBmbHVzaD1UcnVlKQppZiBvcy5wYXRoLmV4aXN0cygiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIpOgogICAgdHJ5OgogICAgICAgIHNmdHAucHV0KCIvd29ya3NwYWNlL2FwcGltdW5kby1haS9qb2IubG9nIiwgQkFTRSArICIvam9iLWxvZy50eHQiKTsgcHJpbnQoIlVQTE9BRCBPSyBqb2ItbG9nIiwgZmx1c2g9VHJ1ZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgX2U6CiAgICAgICAgcHJpbnQoImxvZy11cGxvYWQgbWlzbHVrdCIsIF9lLCBmbHVzaD1UcnVlKQpja3MgPSBzb3J0ZWQoZ2xvYi5nbG9iKCIvbm9zYW5hL291dHB1dHMvY2hlY2twb2ludHMvY2hlY2twb2ludC0qL3RyYWluZXJfc3RhdGUuanNvbiIpKQppZiBja3M6CiAgICBzZnRwLnB1dChja3NbLTFdLCBCQVNFICsgIi90cmFpbmVyX3N0YXRlLmpzb24iKTsgcHJpbnQoIlVQTE9BRCBPSyB0cmFpbmVyX3N0YXRlIiwgZmx1c2g9VHJ1ZSkKc2Z0cC5jbG9zZSgpOyBzc2guY2xvc2UoKQpwcmludCgiQUxMRVMgVkFOIFJPTkRFIDMgT1ZFUkdFWkVUIE5BQVIgRlJBTktGVVJUIiwgZmx1c2g9VHJ1ZSkK'))\"; echo TRAIN-KETEN-KLAAR; python3 -m pip install -q paramiko; python3 -c \"import base64;exec(base64.b64decode('CgppbXBvcnQgb3MsIGJhc2U2NCwgcGFyYW1pa28sIGdsb2IKb3BlbigiL3RtcC91cGtleSIsIndiIikud3JpdGUoYmFzZTY0LmI2NGRlY29kZSgiTFMwdExTMUNSVWRKVGlCUFVFVk9VMU5JSUZCU1NWWkJWRVVnUzBWWkxTMHRMUzBLWWpOQ2JHSnVUbnBoUXpGeVdsaHJkR1JxUlVGQlFVRkJRa2MxZG1KdFZVRkJRVUZGWW0wNWRWcFJRVUZCUVVGQlFVRkJRa0ZCUVVGTmQwRkJRVUYwZW1NeVozUmFWd3BSZVU1VVZYaFBVVUZCUVVOQlRVdEVRakJUVW1VdlpYbElUakpvWW01eE1tOXZaRmgyTVd4WGRWaDFOakJIT1dKc2RHbFVjM2RsUVVGQlFVcERTV3BQTW01cFNYcDBDbkIzUVVGQlFYUjZZekpuZEZwWFVYbE9WRlY0VDFGQlFVRkRRVTFMUkVJd1UxSmxMMlY1U0U0eWFHSnVjVEp2YjJSWWRqRnNWM1ZZZFRZd1J6bGliSFJwVkhOM1pVRUtRVUZCUlVGSmF6aFJVV1pJVVRSRVlsbHNibEZoYmpCWGVsQnBOV0p6VjJ0RVFtODVZVXN5YlRCdE1WQmtSRWRuZDI5TlNGSktSamM1TjBsak0yRkdkV1Z5WVdsb01RcGxMMWRXWVRWbE4zSlJZakYxVnpKS1QzcENORUZCUVVGRGJURjJXa2RXYzJGWE5IUmphbEZDUVdkTlBRb3RMUzB0TFVWT1JDQlBVRVZPVTFOSUlGQlNTVlpCVkVVZ1MwVlpMUzB0TFMwSyIpKQpvcy5jaG1vZCgiL3RtcC91cGtleSIsIDBvNjAwKQpzc2ggPSBwYXJhbWlrby5TU0hDbGllbnQoKTsgc3NoLnNldF9taXNzaW5nX2hvc3Rfa2V5X3BvbGljeShwYXJhbWlrby5BdXRvQWRkUG9saWN5KCkpCnNzaC5jb25uZWN0KCI5Mi41LjcxLjE0NyIsIHVzZXJuYW1lPSJtb2RlbGluIiwga2V5X2ZpbGVuYW1lPSIvdG1wL3Vwa2V5IiwgdGltZW91dD02MCkKc2Z0cCA9IHNzaC5vcGVuX3NmdHAoKQpCQVNFID0gIi9ob21lL21vZGVsaW4vaW5jb21pbmctcjQiCmRlZiBwdXRkaXIobG9jYWwsIHJlbW90ZSk6CiAgICB0cnk6IHNmdHAubWtkaXIocmVtb3RlKQogICAgZXhjZXB0IEV4Y2VwdGlvbjogcGFzcwogICAgZm9yIG4gaW4gc29ydGVkKG9zLmxpc3RkaXIobG9jYWwpKToKICAgICAgICBscCA9IG9zLnBhdGguam9pbihsb2NhbCwgbik7IHJwID0gcmVtb3RlICsgIi8iICsgbgogICAgICAgIGlmIG9zLnBhdGguaXNkaXIobHApOiBwdXRkaXIobHAsIHJwKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNmdHAucHV0KGxwLCBycCk7IHByaW50KCJVUExPQUQgT0siLCBycCwgb3MucGF0aC5nZXRzaXplKGxwKSwgZmx1c2g9VHJ1ZSkKZm9yIGxva2FhbCwgcmVtb3RlIGluIFsoIm1vZGVsLWFwcGltdW5kbyIsIm1vZGVsLWFwcGltdW5kby1yNCIpLCAoIm1vZGVsLWFwcGltdW5kby1jdDIiLCJtb2RlbC1hcHBpbXVuZG8tY3QyLXI0IildOgogICAgcCA9ICIvbm9zYW5hL291dHB1dHMvIiArIGxva2FhbAogICAgaWYgb3MucGF0aC5pc2RpcihwKTogcHV0ZGlyKHAsIEJBU0UgKyAiLyIgKyByZW1vdGUpCmlmIG9zLnBhdGguZXhpc3RzKCIvbm9zYW5hL291dHB1dHMvZXZhbHVhdGllLnR4dCIpOgogICAgc2Z0cC5wdXQoIi9ub3NhbmEvb3V0cHV0cy9ldmFsdWF0aWUudHh0IiwgQkFTRSArICIvZXZhbHVhdGllLnR4dCIpOyBwcmludCgiVVBMT0FEIE9LIGV2YWx1YXRpZS50eHQiLCBmbHVzaD1UcnVlKQppZiBvcy5wYXRoLmV4aXN0cygiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIpOgogICAgdHJ5OgogICAgICAgIHNmdHAucHV0KCIvd29ya3NwYWNlL2FwcGltdW5kby1haS9qb2IubG9nIiwgQkFTRSArICIvam9iLWxvZy50eHQiKTsgcHJpbnQoIlVQTE9BRCBPSyBqb2ItbG9nIiwgZmx1c2g9VHJ1ZSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgX2U6CiAgICAgICAgcHJpbnQoImxvZy11cGxvYWQgbWlzbHVrdCIsIF9lLCBmbHVzaD1UcnVlKQpja3MgPSBzb3J0ZWQoZ2xvYi5nbG9iKCIvbm9zYW5hL291dHB1dHMvY2hlY2twb2ludHMvY2hlY2twb2ludC0qL3RyYWluZXJfc3RhdGUuanNvbiIpKQppZiBja3M6CiAgICBzZnRwLnB1dChja3NbLTFdLCBCQVNFICsgIi90cmFpbmVyX3N0YXRlLmpzb24iKTsgcHJpbnQoIlVQTE9BRCBPSyB0cmFpbmVyX3N0YXRlIiwgZmx1c2g9VHJ1ZSkKc2Z0cC5jbG9zZSgpOyBzc2guY2xvc2UoKQpwcmludCgiQUxMRVMgVkFOIFJPTkRFIDMgT1ZFUkdFWkVUIE5BQVIgRlJBTktGVVJUIiwgZmx1c2g9VHJ1ZSkK'))\"; echo RONDE4-AFGEROND"
    ],
    "work_dir": "/workspace/appimundo-ai",
    "env": {
     "HF_HUB_ENABLE_HF_TRANSFER": "0",
     "TOKENIZERS_PARALLELISM": "false"
    }
   }
  }
 ]
}