SPtask: /ask what does this project do?
task-to-script: Для описаної вище задачі напиши послідовність кроків для /script у 1bcoder — текстовий скрипт, що вирішує задачу автоматично.\n\nПравила формату:\n- Один крок (команда або запит до LLM) на один рядок.\n- Звичайний текстовий рядок (без /) — це запит до LLM.\n- "<крок> -> {{var}}" захоплює результат кроку (репліку LLM або вивід команди/proc) у змінну.\n- "{{var}}" підставляє раніше збережене значення в будь-якому наступному рядку.\n- ":LABEL" — мітка: окремий рядок, лише двокрапка + ім'я, нічого більше.\n- "GATE: <proc>('арг1', 'арг2') > :LABEL" — умовний перехід. Proc МОВЧИТЬ (пройшов) -> виконання йде далі лінійно. Proc друкує "FAIL: ..." -> стрибок на :LABEL. Мітка НИЖЧЕ за GATE = розгалуження/пропуск; мітка ВИЩЕ за GATE = цикл (повтор, поки умова хибна).\n- Для чисел/токенів: expr_gate('python-вираз'), напр. expr_gate('int({{i}})<=0'). НІКОЛИ не підставляй довільний текст (репліку LLM) у expr_gate — ламає синтаксис eval. Для перевірки довільного тексту використовуй pattern-gate('regex', 'повідомлення') — перевіряє останню відповідь LLM через regex, без eval.\n\nВидай ЛИШЕ сам скрипт рядок за рядком, без пояснень і без markdown-блоків.
