From 829010a5d0647c01b16f486db40cf81a504185ed Mon Sep 17 00:00:00 2001 From: Loic Coenen Date: Thu, 7 May 2026 22:33:19 +0000 Subject: [PATCH] tests pass --- .gitignore | 1 + integration_test | Bin 0 -> 30608 bytes looper | Bin 0 -> 25096 bytes main.c | 0 4 files changed, 1 insertion(+) create mode 100644 .gitignore create mode 100755 integration_test create mode 100755 looper create mode 100644 main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b0ac3ed --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.aider* diff --git a/integration_test b/integration_test new file mode 100755 index 0000000000000000000000000000000000000000..cc334db5d7d2a0f1b253f73ac1538825d96174e8 GIT binary patch literal 30608 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 KhD!1R|Nj@bc!AFV literal 0 HcmV?d00001 diff --git a/looper b/looper new file mode 100755 index 0000000000000000000000000000000000000000..87fe464e1ce20e97ee39711c321139cdcbd57c64 GIT binary patch literal 25096 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 Vt5dnw9AAFVUucd